hybridgroup / artoo Goto Github PK
View Code? Open in Web Editor NEWRuby framework for robotics, drones, and the Internet of Things (IoT)
Home Page: http://artoo.io
License: Other
Ruby framework for robotics, drones, and the Internet of Things (IoT)
Home Page: http://artoo.io
License: Other
When I run artoo generate adapter artoo_mouse
, I get the command not found error message.
Could not find command "adapter".
I have artoo 1.8.1 installed. I'll start by making this gem manually, however just wanted to report it.
When I terminate my program, running it again gets me dozens of "called a dead actor" messages from Celluloid. I'm working with artoo on a Raspberry Pi using the led and keyboard devices. Currently I am having to reboot the pi in between runs which is a nuisance.
How can I terminate / interrupt the program cleanly? How can I cleanup after a crash?
Thanks for any help you can offer.
Are there any plans to add support for Hover?
They already have Arduino, Raspberry PI, and Spark Core libraries but would be amazing to be able to use it via Artoo.
Thanks!
Is it possible to control an Arduino slave via RPi both of which can leverage your DSL?
Hi,
I have Mac OS Mavericks and I was trying to install socat from this:
http://artoo.io/documentation/platforms/neurosky/
[514][chimkan: /Users/chimkan]$ artoo install socat
/Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/celluloid-0.15.2/lib/celluloid/cpu_counter.rb:7: warning: Insecure world writable dir /usr/local in PATH, mode 040777
/Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/artoo-1.6.7/lib/artoo/commands/install.rb:16:in socat': uninitialized constant Artoo::Commands::Install::Bundler (NameError) from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor/command.rb:27:in
run'
from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor/invocation.rb:120:in invoke_command' from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor.rb:363:in
dispatch'
from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor/invocation.rb:109:in invoke' from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor.rb:232:in
block in subcommand'
from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor/command.rb:27:in run' from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor/invocation.rb:120:in
invoke_command'
from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor.rb:363:in dispatch' from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/thor-0.18.1/lib/thor/base.rb:439:in
start'
from /Users/chimkan/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/artoo-1.6.7/bin/artoo:56:in <top (required)>' from /Users/chimkan/.rbenv/versions/2.1.0/bin/artoo:23:in
load'
from /Users/chimkan/.rbenv/versions/2.1.0/bin/artoo:23:in `
Is there an adaptor for the Flight Recorder for the ArDrone 2.0?
If that is the case, how can it be accessed the gps data? what is the interface?
I'm trying to connect to the Sphero and getting an error message. I have a Sphero Original and am using OSX. Connecting to the device via the OSX bluetooth "Set Up Bluetooth Device" menu item works, but then artoo can't connect because the resource is busy.
➜ sphero artoo connect scan | grep Sphero
/dev/tty.Sphero-RGO-RN-SPP
➜ sphero artoo connect serial tty.Sphero-RGO-RN-SPP 8023
run socat -d -d -b57600 FILE:/dev/tty.Sphero-RGO-RN-SPP,nonblock,raw,echo=0 TCP-LISTEN:8023,fork from "."
2013/11/15 07:25:30 socat[20312] N opening character device "/dev/tty.Sphero-RGO-RN-SPP" for reading and writing
2013/11/15 07:25:35 socat[20312] E open("/dev/tty.Sphero-RGO-RN-SPP", 06, 0666): Resource busy
2013/11/15 07:25:35 socat[20312] N exit(1)
Has anyone encountered this before? Any ideas?
Hi hybridgroup. How can i make blink led robot same first video http://artoo.io/videos/ and running independently of the physical computer?
Hitting this error when trying any artoo
commands from terminal:
/Users/foo/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/artoo-1.4.1/lib/artoo/commands/commands.rb:15:in `install_dir': undefined method `+' for nil:NilClass (NoMethodError)
from /Users/foo/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/artoo-1.4.1/bin/artoo:49:in `<top (required)>'
from /Users/foo/.rbenv/versions/2.0.0-p247/bin/artoo:23:in `load'
from /Users/foo/.rbenv/versions/2.0.0-p247/bin/artoo:23:in `<main>'
Tried artoo-arduino 1.2.0 and 1.3.0 under both jruby-1.7.4
and 2.0.0-p247
.
I have been playing with both Dino gem and Artoo-arduino gem for some projects that I want to do with my students. I am inclining more for Artoo since we want to do AR.Drone too and it is better to have a unified framework for our students.
Unfortunately I noticed that Dino start up time is way shorter than Artoo-arduino,
Is there any way to speed up artoo-arduino?
Is there any way to stop running the HTTP Server every time that a robot is runned?
Is there any way to avoid having those:
I, [2014-08-17T10:06:16.305577 #9574] INFO -- : Registering connection 'firmata'...
messages at the beginning of every program when it is started up?
Is there anything to do to improve the start up time in artoo-arduino?
Thanks in advance
Heberto del Rio
It's unclear which Sphero models are supported. I'm specifically interested in the BB-8, but it would be helpful if the Sphero page mentioned all supported and unsupported models.
If the answer is simply "all models", it would be helpful to either say "all models as of X/Y/Z date" or else still list them individually, since simply saying "all models" may become untrue at some point in the future with the introduction of a new model that breaks backwards compatibility.
Thanks.
So the GPIO documentation for the Raspberry Pi does not include sensors? Why not? Does the sensor interface not work for RPi?
Whenever I try and run artoo console
to start a CLI session, I get the following error:
ruby/gems/2.0.0/gems/artoo-1.5.0/lib/artoo/commands/commands.rb:15:in `install_dir': undefined method `+' for nil:NilClass (NoMethodError)
I'm trying to just create a console session to connect with an AR Drone. The goal is to be able to control it from the terminal and try out the different methods on this gem.
I'm new to this. If I am going about this wrong, please let me know. Otherwise, any suggestions on how to connect via a terminal and just fire commands at the drone, check events, etc?
Great gem, by the way!
Hi!
I'm trying to run the blinking example with an Arduino MEGA2560.
These are the steps I followed:
$ gort scan serial
/dev/cu.Bluetooth-Incoming-Port /dev/tty.Bluetooth-Incoming-Port
/dev/cu.usbmodem1421 /dev/tty.usbmodem1421
So I changed the adaptor to port => '/dev/tty.usbmodem1421' (also tried with /dev/cu.usbmodem1421 having the same result)
Then gort arduino install and it installed avrdude successfully.
Now I run:
$ gort arduino upload firmata /dev/tty.usbmodem1421 -b mega2560
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: reading input file "/var/folders/2l/2x1l6t5530s25fzgvyfzdp_r0000gn/T/816739554"
avrdude: writing flash (12224 bytes):
Writing | ################################################## | 100% 1.97s
avrdude: 12224 bytes of flash written
avrdude: verifying flash memory against /var/folders/2l/2x1l6t5530s25fzgvyfzdp_r0000gn/T/816739554:
avrdude: load data flash data from input file /var/folders/2l/2x1l6t5530s25fzgvyfzdp_r0000gn/T/816739554:
avrdude: input file /var/folders/2l/2x1l6t5530s25fzgvyfzdp_r0000gn/T/816739554 contains 12224 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 1.57s
avrdude: verifying ...
avrdude: 12224 bytes of flash verified
avrdude done. Thank you.
According to the output of that command, the firmata software was successfully loaded. So the only thing left to do is run the program:
$ ruby blink_led.rb
I, [2017-08-01T19:48:42.463021 #22491] INFO -- : Registering connection 'arduino'...
I, [2017-08-01T19:48:42.463138 #22491] INFO -- : Registering device 'board'...
I, [2017-08-01T19:48:42.463169 #22491] INFO -- : Registering device 'led'...
I, [2017-08-01T19:48:42.463193 #22491] INFO -- : Preparing work...
I, [2017-08-01T19:48:42.463942 #22491] INFO -- : Initializing artoo::connection arduino...
I, [2017-08-01T19:48:42.472186 #22491] INFO -- : Initializing artoo::device board...
I, [2017-08-01T19:48:42.473928 #22491] INFO -- : Initializing artoo::device led...
I, [2017-08-01T19:48:42.476191 #22491] INFO -- : Starting work...
I, [2017-08-01T19:48:42.476433 #22491] INFO -- : Connecting to 'arduino' on port '/dev/cu.usbmodem1421'...
And it just hangs there.
I'm running macOS Sierra 10.12.5 and ruby version 2.2.2 (as needed by artoo-arduino dependencies)
I saw this same issue hapening in gobot: hybridgroup/gobot#374
They resolved it applying some changes. Could Artoo be having the same issues?
Thanks
I now have artoo set up under cubian on a cubieboard 2. Any pointers on getting gpio working for the cubieboard. I will check out the beagle bone imp and try and see what I can do but any help would be great.
When I use the commands drop down to send a command that requires multiple arguments, (eg. set_color
for Sphero) I get a wrong number of arguments exception. The same problem happens when I send a raw POST from cURL. It looks like the arguments list in the /commands/:commandid
route needs to be splatted.
# lib/artoo/api/api.rb
post '/robots/:robotid/devices/:deviceid/commands/:commandid' do
result = device(@params['robotid'], @params['deviceid']).command(@params['commandid'], command_params)
return MultiJson.dump({'result' => result})
end
# lib/artoo/device.rb
def command(method_name, *arguments, &block)
driver.command(method_name, *arguments)
end
I've only been working with Sphero, but the problem seems like it would affect all devices the same. Here's the error log when the problem happens. It's an easy fix, I have a patch, let me know if you'd like a test for the fix and/or a pull-request.
RubyGems.org doesn't report a license for your gem. This is because it is not specified in the gemspec of your last release.
via e.g.
spec.license = 'MIT'
# or
spec.licenses = ['MIT', 'GPL-2']
Including a license in your gemspec is an easy way for rubygems.org and other tools to check how your gem is licensed. As you can image, scanning your repository for a LICENSE file or parsing the README, and then attempting to identify the license or licenses is much more difficult and more error prone. So, even for projects that already specify a license, including a license in your gemspec is a good practice. See, for example, how rubygems.org uses the gemspec to display the rails gem license.
There is even a License Finder gem to help companies/individuals ensure all gems they use meet their licensing needs. This tool depends on license information being available in the gemspec. This is an important enough issue that even Bundler now generates gems with a default 'MIT' license.
I hope you'll consider specifying a license in your gemspec. If not, please just close the issue with a nice message. In either case, I'll follow up. Thanks for your time!
Appendix:
If you need help choosing a license (sorry, I haven't checked your readme or looked for a license file), GitHub has created a license picker tool. Code without a license specified defaults to 'All rights reserved'-- denying others all rights to use of the code.
Here's a list of the license names I've found and their frequencies
p.s. In case you're wondering how I found you and why I made this issue, it's because I'm collecting stats on gems (I was originally looking for download data) and decided to collect license metadata,too, and make issues for gemspecs not specifying a license as a public service :). See the previous link or my blog post aobut this project for more information.
I use HM11 Bluetooth card. How I can connect it with artoo.
Also how I can use arduino libraries? Example sensor libraries.
Hi,
I'm trying out artoo for our makerspace based on a talk you guys gave at the Miami RubyConf last weekend.
Googling hasn't helped and I couldn't find a place to put this. I was hoping to eventually add mcp3008, and other i2c related code up here.
Just testing out the simple led example with the Pi https://github.com/hybridgroup/artoo-raspi
and I'm getting :
I, [2013-11-14T16:46:55.764633 #3044] INFO -- : Preparing work...
I, [2013-11-14T16:46:55.777544 #3044] INFO -- : Initializing connection raspi...
I, [2013-11-14T16:46:55.866557 #3044] INFO -- : Initializing device board...
I, [2013-11-14T16:46:55.898742 #3044] INFO -- : Initializing device led...
I, [2013-11-14T16:46:56.008247 #3044] INFO -- : Starting work...
I, [2013-11-14T16:46:56.016834 #3044] INFO -- : Connecting to 'raspi' on port 'none'...
I, [2013-11-14T16:46:56.069279 #3044] INFO -- : Starting driver 'Artoo::Drivers::DeviceInfo'...
Starting driver 'Artoo::Drivers::Led'...
Firmware name: Raspberry Pi
E, [2013-11-14T16:46:56.119757 #3044] ERROR -- : Artoo::Adaptors::Raspi crashed!
NameError: uninitialized constant Artoo::Raspi
/var/lib/gems/1.9.1/gems/artoo-raspi-0.5.0/lib/artoo/adaptors/raspi.rb:56:in version' /var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in
public_send'
/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in dispatch' /var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in
dispatch'
/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in block in handle_message' /var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in
block in task'
/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in block in initialize' /var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in
block in create'
Disconnecting all PWM pins...E, [2013-11-14T16:46:56.123695 #3044] ERROR -- : uninitialized constant Artoo::Raspi
E, [2013-11-14T16:46:56.136144 #3044] ERROR -- : ["/var/lib/gems/1.9.1/gems/artoo-raspi-0.5.0/lib/artoo/adaptors/raspi.rb:56:in version'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in
public_send'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in dispatch'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in
dispatch'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in block in handle_message'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in
block in task'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in block in initialize'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in
block in create'", "(celluloid):0:in remote procedure call'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in
value'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in method_missing'", "/var/lib/gems/1.9.1/gems/artoo-1.4.1/lib/artoo/connection.rb:86:in
method_missing'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in public_send'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in
dispatch'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in dispatch'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in
block in handle_message'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in block in task'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in
block in initialize'", "/var/lib/gems/1.9.1/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'"]
Firmata version:
New user here, i am most certainly dealing with an issue on my end, but i have no clue as to what i am doing wrong, so i hope you can help.
I have installed gort, i have uploaded the formata using "gort arduino upload firmata /dev/tty.usbmodem1451".
But whenever i try to connect to my arduino using ruby "ruby blink.rb", it just stops at "Connecting to 'firmata' on port '/dev/tty.usbmodem1451'..."
Please let me know if i am missing something? Thanks!
When you open file in Ruby using File.open
with block, file closes automatically.
File.open(...){ |f| f << something }
You need to close file only if you use open
without block. It this case open
is just synonym for new
f = File.open(...)
f << something
f.close
Do you have any plans to support MAVLink, which would enable control of all ArduPilot (APM) drones?
Python has MAVProxy, but there doesn't seem to be a Ruby interface.
Hey Guys,
I used your artoo with both a raspberry pi and a ar.drone we had laying around. I'm thinking of building a new quad with my recently bought openpilot revolution board. It's opensource and has a nice Ground Control Software (GCS). Ideally if I could get artoo working with the openpilot I could automate and do some fun experiments with indoor navigation (using a pixycam for indoor navigation).
I envision two ways of doing this:
In either case I feel like I will need to roll my own or write some Artoo drivers/wrappers to control and interface with the openpilot revo board.
I could use some help via your commulated experience porting devices to artoo. This seems like too much of a mountain to climb for one person on his/her spare time.
openpilot website is here: http://store.openpilot.org/home/19-openpilot-revolution-kickstarter.html
I'm also thinking of getting the oplink which oudl let me communicate with laptop and GCS directly.
I didn't know where else to post these thoughts and ask for help so feel free to move discussion to somewhere else that might be more appropriate.
I am currently building a connection and adapter based on HID-Devices (PS3 Controller and mouse/keyboard). The lifecycle is "connection like" (get a handle on a device, close it, reconnect if needed).
Sadly, the Connection
class only passes the :port
and no optional arguments like a :device_id
or :vendor_id
through to the adaptor.
I would like to lobby for an API extension there, by making :port
optional and pass any given additional arguments through to the adaptor. I'd take up the implementation.
I need help installing a ruby interpreter and everything else on the Artoo Getting Started Page.
Hi
Thanks for a good project.
Is it posible to hold Artoo Master (MCP on the picture below) in the internet?
For example I want to build sensors network. These devices have access to the internet but don't have static IP and I can't Initialize them form Artoo Master and make connection.
Device has to make connection to Artoo Master itself. Artoo Master IP is static.
Can I do it with artoo?
Will Artoo support Ollie in the near future?
I was able to get things working before, but then upgraded to Mavericks recently (better late than before a few patches). There were some problems so I reinstalled RVM, Ruby (2.0.0-p451) and the Artoo gems fresh.
I am able to run a simple Ruby file (puts "Works!"
) without issue, but I seem to have a problem with Artoo:
$ ruby ardrone-takeoff.rb
D, [2014-03-30T19:52:11.943760 #62094] DEBUG -- : Terminating 4 actors...
/Users/username/.rvm/gems/ruby-2.0.0-p451/gems/reel-0.4.0/lib/reel/response.rb:3:in `<class:Response>': uninitialized constant HTTP::Header (NameError)
from /Users/username/.rvm/gems/ruby-2.0.0-p451/gems/reel-0.4.0/lib/reel/response.rb:2:in `<module:Reel>'
from /Users/username/.rvm/gems/ruby-2.0.0-p451/gems/reel-0.4.0/lib/reel/response.rb:1:in `<top (required)>'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/username/.rvm/gems/ruby-2.0.0-p451/gems/reel-0.4.0/lib/reel.rb:18:in `<top (required)>'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/username/.rvm/gems/ruby-2.0.0-p451/gems/artoo-1.6.1/lib/artoo/api/api.rb:1:in `<top (required)>'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/username/.rvm/gems/ruby-2.0.0-p451/gems/artoo-1.6.1/lib/artoo/robot.rb:15:in `<top (required)>'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/username/.rvm/gems/ruby-2.0.0-p451/gems/artoo-1.6.1/lib/artoo.rb:2:in `<top (required)>'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `require'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
from /Users/username/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:144:in `require'
from ardrone-takeoff.rb:1:in `<main>'
Here is my ruby version:
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-darwin12.5.0]
Is there something in particular I can try to fix this? Any additional information I can provide?
Have you guys looked at GrovePi or Arduberry. Any chance you might support either?
I tried following the instructions which say to install a gem named 'artoo-arduino', but this gem is not found. I did find a gem called 'hybridgroup-firmata', is that the same gem?
The connect_to_serial
function takes a default baud rate of 57,600. Some adapters seem to respect a param to connect with a different rate, but the one I'm using, artoo-roomba
does not. In addition to making each adapter more configurable in this respect, I'd love to see a general option on the connection that sets the baudrate. Something like
connection :roomba, :adaptor => :roomba, :port => '/dev/tty.usbserial-DA017LV0', :baudrate => 115200
I don't have the cycles at the moment to make a pull request, but if I get deeper into artoo, I'll try to get one in here. If someone beats me to it in the meantime, even better!
IRC logs:
12:22 PM so one other small ? - when i use ctrl-c while also using a keyboard connection, it errors out a bunch, says Couldn't cleanly terminate all actors in 10 seconds
12:22 PM and i cant use my keyboard anymore in that bash session
12:23 PM i can kick off a new instance, np, just want to make sure i am not missing something
Confirmed issue in OS X Mavericks + Yosemite.
This is likely an issue with how we intercept ctrl-c in artoo-keyboard, and specifically how we kill the program and reset stdin.
I want to build a class that includes the ARDrone Artoo so I can have more complex flight controller functionality, but I am having some trouble.
Here is what my class looks like:
require 'artoo'
class Drone < Artoo::Robot
connection :ardrone, :adaptor => :ardrone
device :drone, :driver => :ardrone
def start_flight
drone.start
drone.take_off
drone.hover
end
def end_flight
drone.land
drone.stop
end
end
And how I am using the class:
require_relative "../lib/drone.rb"
drone = Drone.new
drone.start_flight
sleep(5.seconds)
drone.end_flight
When I run this I get the following errors:
I, [2014-07-24T16:33:14.884194 #10572] INFO -- : Registering connection 'ardrone'...
I, [2014-07-24T16:33:14.884284 #10572] INFO -- : Registering device 'drone'...
I, [2014-07-24T16:33:14.884998 #10572] INFO -- : Initializing connection ardrone...
I, [2014-07-24T16:33:14.890905 #10572] INFO -- : Initializing device drone...
W, [2014-07-24T16:33:14.894058 #10572] WARN -- : Cannot call unconnected adaptor 'ardrone', attempting to reconnect...
E, [2014-07-24T16:33:19.942545 #10572] ERROR -- : Artoo::Adaptors::Ardrone crashed!
NoMethodError: undefined method `join' for nil:NilClass
/Users/username/.rvm/gems/ruby-2.1.1/gems/hybridgroup-argus-0.5.1/lib/argus/nav_monitor.rb:32:in `join'
/Users/username/.rvm/gems/ruby-2.1.1/gems/hybridgroup-argus-0.5.1/lib/argus/drone.rb:40:in `stop'
/Users/username/.rvm/gems/ruby-2.1.1/gems/artoo-ardrone-1.4.0/lib/artoo/adaptors/ardrone.rb:29:in `method_missing'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'
E, [2014-07-24T16:33:19.942761 #10572] ERROR -- : undefined method `join' for nil:NilClass
E, [2014-07-24T16:33:19.943323 #10572] ERROR -- : Artoo::Adaptors::Ardrone#finalize crashed!
NoMethodError: undefined method `join' for nil:NilClass
/Users/username/.rvm/gems/ruby-2.1.1/gems/hybridgroup-argus-0.5.1/lib/argus/nav_monitor.rb:32:in `join'
/Users/username/.rvm/gems/ruby-2.1.1/gems/hybridgroup-argus-0.5.1/lib/argus/drone.rb:40:in `stop'
/Users/username/.rvm/gems/ruby-2.1.1/gems/artoo-ardrone-1.4.0/lib/artoo/adaptors/ardrone.rb:22:in `disconnect'
/Users/username/.rvm/gems/ruby-2.1.1/gems/artoo-1.6.7/lib/artoo/adaptors/adaptor.rb:30:in `finalize'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:388:in `block in run_finalizer'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'
/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'
E, [2014-07-24T16:33:19.943457 #10572] ERROR -- : ["/Users/username/.rvm/gems/ruby-2.1.1/gems/hybridgroup-argus-0.5.1/lib/argus/nav_monitor.rb:32:in `join'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/hybridgroup-argus-0.5.1/lib/argus/drone.rb:40:in `stop'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/artoo-ardrone-1.4.0/lib/artoo/adaptors/ardrone.rb:29:in `method_missing'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'", "(celluloid):0:in `remote procedure call'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:92:in `value'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/artoo-1.6.7/lib/artoo/connection.rb:86:in `method_missing'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `public_send'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:25:in `dispatch'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/calls.rb:67:in `dispatch'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:322:in `block in handle_message'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/actor.rb:416:in `block in task'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/tasks.rb:55:in `block in initialize'", "/Users/username/.rvm/gems/ruby-2.1.1/gems/celluloid-0.15.2/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'"]
D, [2014-07-24T16:33:19.944645 #10572] DEBUG -- : Terminating 8 actors...
I'm able to run the non-modular example without issue.
I noticed last commits were a few years ago and Gobot seems to be very current.
Is this project still maintained or is there no more dev being done on it? Thx.
I just found Artoo and I'd like to know if I can use Artoo with 11-13 years old to learn programming in practical way by using robots. I appreciate any inputs. Thank you in advance.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.