Create a catkin workspace on ROS noetic.
sudo apt install -y python3-wstool python3-catkin-tools
cd ~
mkdir -p catkin_ws/src
cd catkin_ws
catkin init
catkin config --extend /opt/ros/noetic
Download this package.
cd ~/catkin_ws/src
wstool init
wstool set --git ethz_piksi_ros https://github.com/ethz-asl/ethz_piksi_ros.git
wstool update
Install all PPA dependencies.
source /opt/ros/noetic/setup.bash
./ethz_piksi_ros/piksi_multi_cpp/install/prepare-jenkins-slave.sh
Next download all individual ROS package dependencies.
wstool merge ethz_piksi_ros/piksi_multi_cpp/install/dependencies_https.rosinstall
wstool update -j8
Finally, build the workspace.
catkin build
- Upgrade firmware on your Piksi Multi to 2.4.20
- Flash rover or base configuration onto your Piksi Multi
- Hookup Piksi Multi onto host computer via USB (you can also specify another interface here).
roslaunch piksi_multi_cpp config.launch config_type:=rover
orroslaunch piksi_multi_cpp config.launch config_type:=base
- Setup the correction link from base to rover either via UDP broadcast and/or serial modem.
- Specify UDP broadcast interface if you want to send corrections via network.
- Setup base and rover serial modem.
- Launch driver on base
roslaunch piksi_multi_cpp base.launch
- Sample base station position once
rosservice call /piksi_multi_cpp_base/base_station_receiver_0/resample_base_position "num_desired_fixes: 1000 file: '/tmp/base_position.txt' set_enu: false offset_z: 0.0"
- Check status of sampling
rostopic echo /piksi_multi_cpp_base/base_station_receiver_0/position_sampler/position_sampling
- After base station sampling you can start the driver on the rover
roslaunch piksi_multi_cpp rover.launch
The driver publishes a set of custom ROS messages within the /ros
namespace and additionally relays all SBP messages on the /sbp
namespace.
Typically the /ros
messages are most relevant to you.
In particular
/ros/vel_ned
/ros/vel_ned_cov
/ros/pos_enu
/ros/pos_enu_cov
/ros/navsatfix
/ros/receiver_state
/sbp/base_pos_ecef