Package Summary

Rover Robotics: ROS package for connecting to SwiftNav Piksi

Installation

This package requires SwiftNav's libsbp python library. Install before installing this package.

Option 1 (Recommended) Install binaries via aptitude package manager

sudo apt install ros-kinetic-rr-swiftnav-piksi

Option 2 Install source from github (only use if you want to make custom changes to the source code)

cd ~/catkin_ws/src/
git clone https://github.com/RoverRobotics/rr_swiftnav_piksi.git
cd ~/catkin_ws/
catkin_make
source devel/setup.bash

Nodes

swiftnav_piksi_tcp.py

The swiftnav_piksi_tcp_node provides a ROS driver for SwiftNav Piksi's that are connected via ethernet cable. This node will calculate the heading of a robot when moving. In order to get the orientation correct well travelling in reverse, the cmd_vel/managed topic from the rr_control_input_manager node is needed.

Subscribed Topics

/swift_nav/enable_comms (std_msgs/Bool)
  • When set to true the node will start an NCAT processs that will forward IP traffic from base station to the Piksi. Setting this false when idle is a good idea to reduce network traffic.
/cmd_vel/managed (geometry_msgs/TwistStamped)
  • Used to calculate heading correctly while moving

Published Topics

/swift_gps/llh/position (sensor_msgs/NavSatFix)
  • Outputs the current Latitude and Longitude
/swift_gps/llh/fix_mode (std_msgs/Int32)
  • Outputs an integer that corresponds to the current fix mode 0: Invalid 1: Single Point Position (SSP) 2: Differential GNSS (DGNSS) 3: Float RTK 4: Fixed RTK 5: Dead Reckoning 6: Satellite-Base Augmentation System(SBAS)
/swift_gps/llh/n_sats (std_msgs/Int32)
  • Outputs the number of satellites currently being used.
/swift_gps/baseline/ecef/position (nav_msgs/Odometry)
  • Outputs x, y distance in meters away from the basestation. This is a cm level accurate measurement when fix mode is 'rtk_fix' and should be used as input into a kalman filter (robot_localization is a good package for this). This topic also includes heading information calculated from the last two RTK positions. Heading will only be updated if distance traveled is greater than 4cm in 0.1 seconds, which corresponds with going 0.4m/s.
/swift_gps/imu/raw (sensor_msgs/Imu)
  • Raw IMU values.

Parameters

~piksi_ip_address (string, default: 1.2.3.10) ~piksi_port (string, default: '55555') ~base_station_ip_address (string, default: 111.111.111.111)
  • IP Address or URL of the Base Station
~piksi_port (string, default: '55555')
  • TCP port of the Base Station
~computer_ip_address (string, default: 1.2.3.55)
  • IP Address of the computer connected to the Piksi

Running

Example using rosrun

rosrun rr_swiftnav_piksi swiftnav_piksi_tcp.py

Wiki: rr_swiftnav_piksi (last edited 2018-09-08 05:11:53 by nickfragale)