TopGit theo dõi hybridgroup/artoo trên GitHub, đã đạt 1.5k sao. Ruby framework for robotics, drones, and the Internet of Things (IoT)
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Rubinius requires 1.9 mode, to install Rubinius in 1.9 mode using rvm
rvm get head && rvm install rbx-2.1.1 --1.9
Artoo is conceptualy influenced by Sinatra as well as borrowing some code from it.
Artoo provides a robust actor-based messaging architecture, that can support fully multi-threaded operation and high-concurrency, as long as it is supported by the Ruby version in which it is executing. This means you will need to use JRuby or Rubinius for maximum concurrency.
To a large extent, this is due to being built on top of Celluloid, Celluloid::IO, and Reel.
Hardware support:
Artoo has a extensible system for connecting to hardware devices. The following robotics and physical computing platforms are currently supported:
Arduino <=> Adaptor
ARDrone <=> Adaptor
BeagleBone <=> Adaptor
Crazyflie <=> Adaptor
Digispark <=> Adaptor
Joystick <=> Adaptor
Keyboard <=> Adaptor
Leap Motion <=> Adaptor
OpenCV <=> Adaptor
Pebble <=> Adaptor
Raspberry Pi <=> Adaptor
Roomba <=> Adaptor
Spark Core <=> Adaptor
Sphero <=> Adaptor
More platforms are coming soon!
Artoo also has support for devices that can work across multiple hardware platforms.
If you will be using socket to serial commuication (required if you will use JRuby or Rubinius), you are ready to start programming your hardware.
If you want to connect via serial port directly, and are using MRI, install the hybridgroup-serialport gem:
gem install hybridgroup-serialport
Writing your robot code:
Now you are ready to write your own code. Take a look at the examples directory for a whole bunch of code you can use to help get started. We recommend using TDR (Test-Driven Robotics) with your preferred test frameworks.
Running your robot:
ruby myrobot.rb
API:
Artoo includes a RESTful API to query the status of any robot running within a group, including the connection and device status, and device streaming data via websockets.
To activate the API, use the api command like this:
require 'artoo'
connection :loop
device :passthru
api :host => '127.0.0.1', :port => '4321'
work do
puts "Hello from the API running at #{api_host}:#{api_port}..."
end
Once the robot or group is working, you can view the main API page at the host and port specified.
Test-Driven Robotics:
Artoo makes it easy to do Test Driven Development (TDD) of your robotic devices using your favorite Ruby test and mocking frameworks.
Here is an example that uses Minitest, Mocha, and Timecop:
require './test_helper'
require './test_robot'
describe 'sphero' do
let(:robot) { Artoo::MainRobot.new }
let (:start) { Time.now }
before :each do
Timecop.travel(start)
robot.work
end
after :each do
Timecop.return
end
it 'has work to do every 3 seconds' do
robot.has_work?(:every, 3.seconds).wont_be_nil
end
it 'receives collision event' do
robot.expects(:contact)
robot.sphero.publish("collision", "clunk")
sleep 0.05
end
it 'must roll every 3 seconds' do
Timecop.travel(start + 3.seconds) do
robot.sphero.expects(:roll)
sleep 0.05
end
Timecop.travel(start + 6.seconds) do
robot.sphero.expects(:roll)
sleep 0.05
end
end
end
to describe the following Sphero robot:
require 'artoo'
connection :sphero, :adaptor => :sphero, :port => '127.0.0.1:4560'
device :sphero, :driver => :sphero
def contact(*args)
@contacts ||= 0
@contacts += 1
puts "Contact #{@contacts}"
end
work do
on sphero, :collision => :contact
every(3.seconds) do
sphero.roll 90, rand(360)
end
end
The repo with full example of using Artoo for test driven robotics is located at https://github.com/hybridgroup/artoo-test-example
CLI
Artoo uses the Gort http://gort.io Command Line Interface (CLI) so you can access important features right from the command line. We call it "RobotOps", aka "DevOps For Robotics". You can scan, connect, update device firmware, and more!
Artoo also has its own CLI so you can generate new robots, or use its console.
$ artoo
Commands:
artoo console ROBOT # Run a robot using the Robi console
artoo generate SUBCOMMAND ...ARGS # Generates a new robot or adaptor
artoo help [COMMAND] # Describe available commands or one specific command
artoo install SUBCOMMAND ...ARGS # Installs utility programs
artoo start ROBOT # Run a robot
artoo version # Displays the current version
Console:
Artoo includes a console based on Pry to allow you to interactively debug and control your robot.
$ artoo console ./examples/hello.rb
run robi ./examples/hello.rb from "."
I, [2013-07-03T17:11:35.793913 #5527] INFO -- : Registering connection 'loop'...
I, [2013-07-03T17:11:35.794939 #5527] INFO -- : Preparing work...
robi> start
Starting main robot...
I, [2013-07-03T17:11:48.950888 #5527] INFO -- : Initializing connection loop...
I, [2013-07-03T17:11:48.955804 #5527] INFO -- : Starting work...
I, [2013-07-03T17:11:48.956152 #5527] INFO -- : Connecting to 'loop' on port '#<Artoo::Port:0xfea0>'...
robi> list
#<Artoo::MainRobot:0x100c0>
robi> hello
hello
hello
robi> stop
Stopping robots...
robi> exit
D, [2013-07-03T17:12:04.413060 #5527] DEBUG -- : Terminating 7 actors...
D, [2013-07-03T17:12:04.414300 #5527] DEBUG -- : Shutdown completed cleanly
Generator
Want to integrate a hardware device we don't have Artoo support for yet? There's a generator for that! You can easily generate a new skeleton Artoo adaptor to help you get started. Simply run the 'artoo generate adaptor' command, and the generator will create a new directory with all of the files in place for your new adaptor gem.
Check out our documentation for lots of information about how to use Artoo.
If you want to help us with some documentation on the site, you can go to artoo.io branch and then, follow the instructions.
IRC
Need more help? Just want to say "Hello"? Come visit us on IRC freenode #artoo
Contributing
All patches must be provided under the Apache 2.0 License
Please use the -s option in git to "sign off" that the commit is your work and you are providing it under the Apache 2.0 License
Submit a Github Pull Request to the appropriate branch and ideally discuss the changes with us in IRC.
We will look at the patch, test it out, and give you feedback.
Avoid doing minor whitespace changes, renamings, etc. along with merged content. These will be done by the maintainers from time to time but they can complicate merges and should be done seperately.
Take care to maintain the existing coding style.
Add unit tests for any new or changed functionality.
All pull requests should be "fast forward"
If there are commits after yours use “git rebase -i <new_head_branch>”
If you have local changes you may need to use “git stash”
For git help see progit which is an awesome (and free) book on git
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/hybridgroup/artoo là nguồn chính thức.
hybridgroup/artoo có bao nhiêu sao?
hybridgroup/artoo có 1.5k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/hybridgroup/artoo. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
hybridgroup/artoo có phải mã nguồn mở không?
TopGit chưa ghi nhận license cho hybridgroup/artoo. Phần lớn repo public trên GitHub là mã nguồn mở, nhưng điều khoản khác nhau từng repo — mở file LICENSE để xác nhận.
hybridgroup/artoo có tag gì không?
Bản đồng bộ chưa ghi nhận topic GitHub nào cho hybridgroup/artoo. GitHub topics hiển thị ở thanh bên phải trang repo — đó là nơi đáng kiểm tra nhất.
hybridgroup/artoo có trang demo không?
Dự án có trang chủ ở http://artoo.io. Tab "Readme" ở trang này thường có ảnh chụp và hướng dẫn bắt đầu nhanh.
hybridgroup/artoo còn đang phát triển không?
Commit gần nhất trên hybridgroup/artoo là 2.9 năm trước (theo timestamp GitHub). Repo có 140 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
Đọc đầy đủ README ở tab phía trên.
Muốn nghe thêm một ý kiến về artoo?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về artoo.