Pi Robot Source Code
Code Repository for the Pi Robot Project
- ROS Arduino Bridge: A ROS stack for controlling an Arduino-based differential drive robot
- Face Tracking ROS Package:
This package combines OpenCV with ROS to create a fairly robost face
tracker. It can also be used to track arbitrary objects in a
video by first selecting the objects with the mouse.
- Skeleton Tracker ROS Package:
This package uses a Kinect RGB-D camera and the ROS/PrimeSense drivers
to track the joint positions of a person standing in front of the
camera. These positions can then be mapped into servo positions
of a humanoid robot so that the robot mimics the actions of the person.
- ROS Serializer Package:
This is a fairly complete ROS package for the Serializer
microcontroller made by the Robotics Connection. It provides
access to the analog and digital sensor pins, the PWM servo controller,
and the PID motion controller.
$ svn checkout
$ cd serializer
$ rosmake --rosdep-install
$ cp sample_params.yaml
my_params.yaml (call it whatever you like)
to match your robot.
Rename and edit the sample
Python Serializer library:
This is a Python library for controlling the Serializer microcontroller
Connection. Please see the link below for instructions and the
Change log from version 0.1.0:
- Added support for the VPID and DPID parameters. Also changed
default units from inches to meters/cm since ROS seems to prefer
metric. With metric units, sensor distance values are in cm and drive
motor distances are in meters. There is a flag near the top of the
file called INIT_PID which is set to False by default. Once you have
set your own PID values, you can set this to True to have them updated
on the Serializer.
- Since ROS uses radians for angles, the rotate()
expects radians if the units are metric. If the units are English, then
it expects degrees.
- Added function mogo_m_per_s() that lets you tell the
to move the wheels in meters per second. Again, this is for the
benefit of ROS. This assumes you have your PID parameters set up
correctly for your robot.
- Added function travel_at_speed() to move continuously
- Added rotate_at_speed() to rotate continuously at a
- Added functions for the various sensor classes so that they
be more easily used as ROS services. For example, corresponding to
the Ping class there is now a function get_Ping(pin, cached)
that directly returns the distance from the sensor on the specified
pin without first having to instantiate the Ping class.
Python Dynamixel library:
This is a Python version of the C# library written by Scott Ferguson at
Forest Moon Productions.
Please see the link below for instructions and the source code.