Finally got GPS working on the Cubieboard

Sometimes the solution would be easy….

…damn I swapped Rx and Tx and everything went fine,
and I was so sure I connected, documented and even checked multiple times that all is as it should.

At first I thought the level shifter isn’t working, but my brand new Open Workbench Logic Sniffer showed signals, same signals before and after shifting, and was even able to autobaudrate guess my GPS defaults which is 38400.

As I 3D printed a case for the cubieboard I needed to remove the board from the robot anyway so I had the chance to look at the tiny pin headers again, oh and yes I swapped the cables for Rx and Tx there…. damn.

Configuring ROS Dynamixel controllers

Installed the ROS hydro components for the dynamixel servos, and configured the pan tilt controllers.

Software so far looks OK, now I need to re-vive the dynamixels from the arduino and hopefully the protocol CRC errors will be gone.

 

<launch>
<node name=”dynamixel_manager” pkg=”dynamixel_controllers” type=”controller_manager.py” required=”true” output=”screen”>
<rosparam>
namespace: dxl_manager
serial_ports:
pan_tilt_port:
port_name: “/dev/ttyACM0″
baud_rate: 57600
min_motor_id: 1
max_motor_id: 13
update_rate: 20
</rosparam>
</node>
</launch>

 

<launch>
<!– Load controller configuration to parameter server –>
<rosparam file=”$(find teddy_dynamixel)/config/dynamixel_joint_controllers.yaml” command=”load”/>

<!– start specified joint controllers –>
<node name=”dynamixel_controller_spawner” pkg=”dynamixel_controllers” type=”controller_spawner.py”
args=”–manager=dxl_manager
–port=pan_tilt_port
–type=simple
pan_controller
tilt_controller”
output=”screen”/>
</launch>

 

pan_controller:
controller:
package: dynamixel_controllers
module: joint_position_controller
type: JointPositionController
joint_name: pan_joint
joint_speed: 2.0
motor:
id: 11
init: 512
min: 0
max: 1023

tilt_controller:
controller:
package: dynamixel_controllers
module: joint_position_controller
type: JointPositionController
joint_name: tilt_joint
joint_speed: 2.0
motor:
id: 12
init: 512
min: 0
max: 1023

Move to ROS hydro supplied GSCAM

Meanwhile ROS hydro has it’s own gscam modules released, so I migrated from my own compiled module and also reconfigured the topic remapping.

 

ptzcam.launch file:

<?xml version=”1″ encoding=”utf-8″?>
<launch>
<node pkg=”gscam” type=”gscam” name=”gscamptz” cwd=”node” respawn=”true”>
<env name=”GSCAM_CONFIG” value=”v4l2src device=/dev/video0 always-copy=false ! video/x-raw-yuv,width=320,height=240,framerate=15/1 ! ffmpegcolorspace”/>
<remap from=”camera/image_raw” to=”/camera/ptz/image_raw” />
<remap from=”camera/camera_info” to=”/camera/ptz/camera_info” />
</node>
</launch>

 

Teddy Robot process monitoring

 

Devices:
pyongyang
connected
cubie
connected
arduino1
connected
arduino2
not connected
maple
connected
ROS Processes
ROS Core
running
ROS Serial
running
IMU/AHRS
running
GPS/Client
not running
fix:true
EKF Pose Odometry Fusion
running
Stereo Cameras
running
Stereo Depth Fusion
running
Streamingserver
running
OpenTLD Tracking
not running
Face/Object Recognizer
not running
Speech Recog
not running
Speech Synthesis
not running
SMACH
not running
state:menu
Web Interface
running
Peripherals:
Camera left
connected
Camera right
connected
IMU/I2C
connected
GPS/Serial
not connected
Sonar Front
not yet
dist:40
Sonar Left
not yet
dist:40
Sonar Right
not yet
dist:40
Sonar Back
not yet
dist:40
Pan Servo
not yet
pos:512
Tilt Servo
not yet
pos:512
Nose LED
not yet
color:green
Motor Controller
not connected
USB-Audio
connected
Main Audio Input
not yet
MEMS mic middle
Main Speakers
not yet
vol:50
Camera left mic
not yet
val:25
Camera right mic
not yet
val:25
MEMS mic left
not yet
val:25
MEMS mic right
not yet
val:25
MEMS mic middle
not yet
val:25
CMU front
not yet
objs:0
CMU rear
not yet
objs:0
HW Monitoring
Cubie CPU Speed
768 MHz
PyongYang CPU0 Speed
774 Mhz
PyongYang CPU1 Speed
1800 Mhz
PyongYang CPU2 Speed
774 Mhz
PyongYang CPU3 Speed
774 Mhz
PyongYang CPU0 Temp
74°C
PyongYang CPU1 Temp
70°C
PyongYang Chassis Temp
27.8°C
Maple Temp
not yet
Pan Servo Temp
not yet
Tilt Servo Temp
not yet
Pan Servo Voltage
not yet
Tilt Servo Voltage
not yet
Motor Controller Voltage 12.1V
Motor Controller Currents  0A 0A
Main Voltage 12.8V
Main Amperes  2.4A
Main Watts 30.7W
Disk Cubie
65% free
Disk PyongYang
79% free
Memory Cubie
50% free
Memory PyongYang
59% free