Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repository Summary

Checkout URI https://github.com/hbrobotics/ros_arduino_bridge.git
VCS Type git
VCS Version hydro-devel
Last Updated 2015-02-23
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

README

Overview

This branch (hydro-devel) is intended for ROS Hydro and above, and uses the Catkin buildsystem. It may also be compatible with ROS Groovy.

This ROS stack includes an Arduino library (called ROSArduinoBridge) and a collection of ROS packages for controlling an Arduino-based robot using standard ROS messages and services. The stack does not depend on ROS Serial.

Features of the stack include:

  • Direct support for Ping sonar and Sharp infrared (GP2D12) sensors

  • Can also read data from generic analog and digital sensors

  • Can control digital outputs (e.g. turn a switch or LED on and off)

  • Support for PWM servos

  • Configurable base controller if using the required hardware

The stack includes a base controller for a differential drive robot that accepts ROS Twist messages and publishes odometry data back to the PC. The base controller requires the use of a motor controller and encoders for reading odometry data. The current version of the stack provides support for the following base controller hardware:

  • Pololu VNH5019 dual motor controller shield (http://www.pololu.com/catalog/product/2502) or Pololu MC33926 dual motor shield (http://www.pololu.com/catalog/product/2503).

  • Robogaia Mega Encoder shield (http://www.robogaia.com/two-axis-encoder-counter-mega-shield-version-2.html) or on-board wheel encoder counters.

NOTE: The Robogaia Mega Encoder shield can only be used with an Arduino Mega. The on-board wheel encoder counters are currently only supported by Arduino Uno.

  • The library can be easily extended to include support for other motor controllers and encoder hardware or libraries.

Official ROS Documentation

A standard ROS-style version of this documentation can be found on the ROS wiki at:

http://www.ros.org/wiki/ros_arduino_bridge

System Requirements

Python Serial: To install the python-serial package under Ubuntu, use the command:

$ sudo apt-get install python-serial

On non-Ubuntu systems, use either:

$ sudo pip install --upgrade pyserial

or

$ sudo easy_install -U pyserial

The stack should work with any Arduino-compatible controller for reading sensors and controlling PWM servos. However, to use the base controller, you will need a supported motor controller and encoder hardware as described above. If you do not have this hardware, you can still try the package for reading sensors and controlling servos. See the NOTES section at the end of this document for instructions on how to do this.

To use the base controller you must also install the appropriate libraries for your motor controller and encoders. For the Pololu VNH5019 Dual Motor Shield, the library can be found at:

https://github.com/pololu/Dual-VNH5019-Motor-Shield

For the Pololu MC33926 Dual Motor Shield, the library can be found at:

https://github.com/pololu/dual-mc33926-motor-shield

The Robogaia Mega Encoder library can be found at:

http://www.robogaia.com/uploads/6/8/0/9/6809982/__megaencodercounter-1.3.tar.gz

These libraries should be installed in your standard Arduino sketchbook/libraries directory.

Finally, it is assumed you are using version 1.0 or greater of the Arduino IDE.

Preparing your Serial Port under Linux

Your Arduino will likely connect to your Linux computer as port /dev/ttyACM# or /dev/ttyUSB# where # is a number like 0, 1, 2, etc., depending on how many other devices are connected. The easiest way to make the determination is to unplug all other USB devices, plug in your Arduino, then run the command:

$ ls /dev/ttyACM*

or

$ ls /dev/ttyUSB*

Hopefully, one of these two commands will return the result you’re looking for (e.g. /dev/ttyACM0) and the other will return the error “No such file or directory”.

Next you need to make sure you have read/write access to the port. Assuming your Arduino is connected on /dev/ttyACM0, run the command:

$ ls -l /dev/ttyACM0

and you should see an output similar to the following:

crw-rw---- 1 root dialout 166, 0 2013-02-24 08:31 /dev/ttyACM0

Note that only root and the “dialout” group have read/write access. Therefore, you need to be a member of the dialout group. You only have to do this once and it should then work for all USB devices you plug in later on.

To add yourself to the dialout group, run the command:

$ sudo usermod -a -G dialout your_user_name

where your_user_name is your Linux login name. You will likely have to log out of your X-window session then log in again, or simply reboot your machine if you want to be sure.

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/hbrobotics/ros_arduino_bridge.git
VCS Type git
VCS Version hydro-devel
Last Updated 2015-02-23
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

README

Overview

This branch (hydro-devel) is intended for ROS Hydro and above, and uses the Catkin buildsystem. It may also be compatible with ROS Groovy.

This ROS stack includes an Arduino library (called ROSArduinoBridge) and a collection of ROS packages for controlling an Arduino-based robot using standard ROS messages and services. The stack does not depend on ROS Serial.

Features of the stack include:

  • Direct support for Ping sonar and Sharp infrared (GP2D12) sensors

  • Can also read data from generic analog and digital sensors

  • Can control digital outputs (e.g. turn a switch or LED on and off)

  • Support for PWM servos

  • Configurable base controller if using the required hardware

The stack includes a base controller for a differential drive robot that accepts ROS Twist messages and publishes odometry data back to the PC. The base controller requires the use of a motor controller and encoders for reading odometry data. The current version of the stack provides support for the following base controller hardware:

  • Pololu VNH5019 dual motor controller shield (http://www.pololu.com/catalog/product/2502) or Pololu MC33926 dual motor shield (http://www.pololu.com/catalog/product/2503).

  • Robogaia Mega Encoder shield (http://www.robogaia.com/two-axis-encoder-counter-mega-shield-version-2.html) or on-board wheel encoder counters.

NOTE: The Robogaia Mega Encoder shield can only be used with an Arduino Mega. The on-board wheel encoder counters are currently only supported by Arduino Uno.

  • The library can be easily extended to include support for other motor controllers and encoder hardware or libraries.

Official ROS Documentation

A standard ROS-style version of this documentation can be found on the ROS wiki at:

http://www.ros.org/wiki/ros_arduino_bridge

System Requirements

Python Serial: To install the python-serial package under Ubuntu, use the command:

$ sudo apt-get install python-serial

On non-Ubuntu systems, use either:

$ sudo pip install --upgrade pyserial

or

$ sudo easy_install -U pyserial

The stack should work with any Arduino-compatible controller for reading sensors and controlling PWM servos. However, to use the base controller, you will need a supported motor controller and encoder hardware as described above. If you do not have this hardware, you can still try the package for reading sensors and controlling servos. See the NOTES section at the end of this document for instructions on how to do this.

To use the base controller you must also install the appropriate libraries for your motor controller and encoders. For the Pololu VNH5019 Dual Motor Shield, the library can be found at:

https://github.com/pololu/Dual-VNH5019-Motor-Shield

For the Pololu MC33926 Dual Motor Shield, the library can be found at:

https://github.com/pololu/dual-mc33926-motor-shield

The Robogaia Mega Encoder library can be found at:

http://www.robogaia.com/uploads/6/8/0/9/6809982/__megaencodercounter-1.3.tar.gz

These libraries should be installed in your standard Arduino sketchbook/libraries directory.

Finally, it is assumed you are using version 1.0 or greater of the Arduino IDE.

Preparing your Serial Port under Linux

Your Arduino will likely connect to your Linux computer as port /dev/ttyACM# or /dev/ttyUSB# where # is a number like 0, 1, 2, etc., depending on how many other devices are connected. The easiest way to make the determination is to unplug all other USB devices, plug in your Arduino, then run the command:

$ ls /dev/ttyACM*

or

$ ls /dev/ttyUSB*

Hopefully, one of these two commands will return the result you’re looking for (e.g. /dev/ttyACM0) and the other will return the error “No such file or directory”.

Next you need to make sure you have read/write access to the port. Assuming your Arduino is connected on /dev/ttyACM0, run the command:

$ ls -l /dev/ttyACM0

and you should see an output similar to the following:

crw-rw---- 1 root dialout 166, 0 2013-02-24 08:31 /dev/ttyACM0

Note that only root and the “dialout” group have read/write access. Therefore, you need to be a member of the dialout group. You only have to do this once and it should then work for all USB devices you plug in later on.

To add yourself to the dialout group, run the command:

$ sudo usermod -a -G dialout your_user_name

where your_user_name is your Linux login name. You will likely have to log out of your X-window session then log in again, or simply reboot your machine if you want to be sure.

File truncated at 100 lines see the full file

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository

Repo symbol

ros_arduino_bridge repository