Robotics lab resources: Difference between revisions
(16 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
== ROB3/TR5 robotic arm == | == ROB3/TR5 robotic arm == | ||
[[Image:Tr5.png|300px|thumb|TR5 robotic arm (5DOF)]] | |||
=== Interface with MATLAB === | === Interface with MATLAB === | ||
The latest version of the software (developed in house) can be found here: [[Media:Matlab rob3 tr5.zip| | The latest version of the software (developed in house) can be found here: [[Media:Matlab rob3 tr5-May2010.zip|Matlab_rob3_tr5-May2010.zip]] | ||
API descripton: | API descripton: | ||
Line 28: | Line 30: | ||
== Pioneer III DXe mobile robot == | == Pioneer III DXe mobile robot == | ||
[[Image:PioneerP3 Image1b.jpg|thumb|Pioneer P3DX mobile robot]] | |||
The three Pioneer robots at the lab are configured with the following settings: | The three Pioneer robots at the lab are configured with the following settings: | ||
* BAUD rate: | * BAUD rate: 115200 | ||
* SIP periot: | * SIP periot: 100ms | ||
'''DO NOT change these settings without express consent of the course lecturers!''' | '''DO NOT change these settings without express consent of the course lecturers!''' | ||
These parameters must be in sync with the ones in the MATLAB interface. | These parameters must be in sync with the ones in the MATLAB interface. Long serial cables, as well as USB-serial interfaces are available at the lab upon request. | ||
=== Interface with ROS === | |||
The [http://www.ros.org/wiki/p2os p2os stack] provides the driver supporting any robot that uses either P2OS or ARCOS firmware, including the Pioneer 3DX. | |||
=== Interface with MATLAB === | === Interface with MATLAB === | ||
The latest version of the software (developed in house) can be found here: [[Media:Matlab pioneer.zip| | The latest version of the software (developed in house) can be found here: | ||
* [[Media:Matlab pioneer-May2010.zip|Matlab_pioneer-May2010.zip]] -- Version for SIP cycle of 100ms and BAUD rate 115K | |||
API descripton: | API descripton: | ||
Line 53: | Line 63: | ||
; pioneer_close(sp): closes robot communication, including disabling the sonar ring | ; pioneer_close(sp): closes robot communication, including disabling the sonar ring | ||
== | == Hokuyo URG-04LX-UG01 Laser Range Finder == | ||
[[Image:Urg 04lx ug01 top.jpeg|100px|thumb|Hokuyo URG-04LX-UG01]] | |||
=== Driver for ROS === | |||
The [http://www.ros.org/wiki/laser_drivers laser_drivers stack] contains drivers for laser rangefinders, including Hokuyo SCIP 2.0-compliant, including the Hokuyo URG-04LX-UG01, as well as the SICK models. | |||
=== Driver for MATLAB === | |||
This driver was written by João Ferreira from IPFN/IST: [[Media:Hokuyo matlab.rar|Hokuyo matlab.rar]] | |||
== Floor map == | |||
* [[Media:Piso005.png|High-resolution map of the 5th floor of the North Tower]] |
Latest revision as of 15:44, 2 October 2012
This page contains information regarding the lab classes of the undergrad course Robotics at Instituto Superior Técnico. This is NOT the course official page (which can be found here looking up for Robótica).
ROB3/TR5 robotic arm
Interface with MATLAB
The latest version of the software (developed in house) can be found here: Matlab_rob3_tr5-May2010.zip
API descripton:
- serial_port_start()
- initializes the serial port, returning an object referencing it
In the following functions, the argument sp corresponds to this serial port object.
- rob3_init(sp)
- initializes the arm, returning a (meaningless) integer
- rob3_move_joint(sp,n,x)
- moves joint n to angular position x
- rob3_move_joints(sp,v)
- moves all 6 joints to the positions defined by the vector v (1x6)
- rob3_read_joint(sp,n)
- reads the angular position of joint n, returning a vector [64+joint-1, position, 3]
- rob3_read_joints(sp)
- reads the angular position of all joints, returning a vector [71, position_1, ..., position_6, 3]
Functions rob3_move_joint_with_speed and rob3_move_joints_with_speed are similar to the ones above without the _with_speed part, except that these take an extra argument corresponding to the speed(s) of the joints.
Hardware repair
There are two common hardware problems with these arms, which can easly be repaired (by the lab technical staff only!). The MATLAB function rob3_selftest facilitates diagnosics by moving all joints in sequence.
One concerns the failure of the power drivers, an H-bridge with a small heatsink glued on top of it. The arm has three of these chips, which model is L293 (datasheet). To diagnose this problem, switch the connectors of two joints to locate the problematic chip.
Another one concerns the failure of a voltage inverter, responsible for providing a negative voltage for the RS232 drivers. The chip is the 7660 (datasheet). To diagnose this problem check whether the voltage at pin 5 is negative: in normal operation pin 8 reads about 8V, while pin 5 reads about -8V.
Pioneer III DXe mobile robot
The three Pioneer robots at the lab are configured with the following settings:
- BAUD rate: 115200
- SIP periot: 100ms
DO NOT change these settings without express consent of the course lecturers!
These parameters must be in sync with the ones in the MATLAB interface. Long serial cables, as well as USB-serial interfaces are available at the lab upon request.
Interface with ROS
The p2os stack provides the driver supporting any robot that uses either P2OS or ARCOS firmware, including the Pioneer 3DX.
Interface with MATLAB
The latest version of the software (developed in house) can be found here:
- Matlab_pioneer-May2010.zip -- Version for SIP cycle of 100ms and BAUD rate 115K
API descripton:
- serial_port_start()
- initializes the serial port, returning an object referencing it
In the following functions, the argument sp corresponds to this serial port object.
- pioneer_init(sp)
- initializes the robot, including enabling the sonar ring
- pioneer_set_controls(sp,v,ω)
- moves the robot with linear velocity v and angular velocity ω
- pioneer_set_heading(sp,θ)
- rotates robot until heading θ w.r.t. odometry
- pioneer_set_translation(sp,d)
- moves robot in a straght line x units
- pioneer_read_odometry()
- returns a vector with the three components of the robot pose
- pioneer_read_sonars()
- returns a vector of sonar readings
- pioneer_close(sp)
- closes robot communication, including disabling the sonar ring
Hokuyo URG-04LX-UG01 Laser Range Finder
Driver for ROS
The laser_drivers stack contains drivers for laser rangefinders, including Hokuyo SCIP 2.0-compliant, including the Hokuyo URG-04LX-UG01, as well as the SICK models.
Driver for MATLAB
This driver was written by João Ferreira from IPFN/IST: Hokuyo matlab.rar