Skip to content

moriarty/ros-ev3

Repository files navigation

ROS on the Lego EV3

At 300MHz and 64MB RAM, the EV3 is a huge step up over the previous Lego NXT.

This project provides instructions on how to install ros_comm, the ros communication stack onto the EV3, which allows ROS nodes to run on the EV3 as long as their is a roscore running on another computer on the network.

This project aimed to get ROS running on the EV3, however roscore itself isn't able to run on the brick directly. is very slow to launch on the EV3. If you need roscore on the EV3, see issue #2

If you have a BrickPi from Dexter Industries, the setup is even easier: just install ev3dev and follow the rest of the ROS instructions for installing on a raspberryPi.

Big thanks to the work done by those contributing to the ev3dev project & their github issues

How To

See brickstrap-build-status.md for instructions to create a custom ev3dev image with ros_comm and common_msgs installed.

Latest Updates

  • Instructions now install ros_comm & common_msgs
  • It is strongly recommended to use rospython.
  • The ev3dev-lang-cpp installation instructions have been added.
  • I've tested on my RaspberryPi 1 and BrickPi with ev3dev, default ROS instructions work.
  • The instructions have been updated and tested with latested release of ev3dev on a virtual machine running Ubuntu 14.04.4, and installing ROS Indigo.
  • A user has reported that they were able to follow the same instructions with minimal issues and install ROS Jade.
  • using this python-ev3 package and a python console I controlled the motors from ros topic input. no video proof yet, it was just a quick hack to test it.
  • rospy talker-subscriber working. If you're looking for proof here is boring video of my ssh terminals

See Also

The home of these instructions should eventually be on the official ROS wiki: http://wiki.ros.org/Robots/EV3. For now, the wiki page just links back to here. However, it is worth noting that there is a another project under development, using Yocto Linux and a ROS Meta Layer, See wiki page for more details (they also link back to github).

ToDos/Wishlist:

  • Create a tutorial and example programs to start using ros_comm on the EV3 for users who aren't familiar with ROS.
  • Create a tutorial and examples for compiling ROS c++ nodes in brickstrap and transfering them to the EV3.
  • Create a script or brickstrap config to simplify the process.
  • Create a controller for the EV3 which listens to ros topics for motor commands and publishes the encoder ticks.
  • Write a configurable differential driver controller which takes geometry_msgs/Twist to allow ros navigation to control the EV3.
  • Create publishers for the EV3 sensors
  • Build debs?
  • eventually add a ROS tab to brickman for ev3dev with ros.
    • Set ROS_MASTER_URI
    • Launch the ros controller node
    • Configuration of the controller node would be done via ssh on a per robot basis, but once the robot is built it would be handy to quickly connect it to ROS without ssh first into the brick and launching

About

How to install ROS (ros_comm) on an ev3 with ev3dev

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages