uavcan_communicator repository

Repository Summary

Checkout URI https://github.com/InnopolisAero/uavcan_communicator.git
VCS Type git
VCS Version master
Last Updated 2021-09-06
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
uavcan_communicator 0.0.0
uavcan_msgs 0.0.0

README

Uavcan communicator

Uavcan communicator is a bridge between UAVCAN and ROS.

It covers a minimal set of sensors required for such applications as PX4 UAVCAN HITL simulation. This communicator can be used for other purposes as well.

The tables below represent the supported conversions:

UAVCAN->ROS

Brige name ROS msg UAVCAN msg
1 ActuatorsUavcanToRos sensor_msgs/Joy esc::RawCommand
2 ArmUavcanToRos std_msgs::Bool esc::RawCommand
3 AhrsSolutionUavcanToRos sensor_msgs::Imu ahrs::AhrsSolution
4 EscStatusUavcanToRos uavcan_msgs::EscStatus esc::Status
5 CircuitStatusUavcanToRos uavcan_msgs::CircuitStatus power::CircuitStatus

ROS->UAVCAN

Brige name ROS msg UAVCAN msg
1 BaroStaticTemperatureRosToUavcan uavcan_msgs/StaticTemperature air_data::StaticTemperature
2 BaroStaticPressureRosToUavcan uavcan_msgs/StaticPressure air_data::StaticPressure
3 DiffPressureRosToUavcan uavcan_msgs/RawAirData air_data::RawAirData
4 GpsRosToUavcan uavcan_msgs/Fix gnss::Fix
5 ImuRosToUavcan sensor_msgs/Imu ahrs::RawIMU
6 MagnetometerRosToUavcan sensor_msgs/MagneticField ahrs::MagneticFieldStrength
7 EscStatusRosToUavcan uavcan_msgs/EscStatus esc::Status
8 IceReciprocatingStatusRosToUavcan uavcan_msgs/IceReciprocatingStatus ice::reciprocating::Status
9 IceFuelTankStatusRosToUavcan uavcan_msgs/IceFuelTankStatus ice::FuelTankStatus
10 BatteryInfoRosToUavcan sensor_msgs/BatteryState power::BatteryInfo

Here we try to use default ROS messages as much as possible, but sometimes we need to define our own messages uavcan_msgs.

Usage example

Below you can see an example of using the uavcan_communicator in conjunction with a VTOL dynamics simulator.

uavcan vtol dynamics simulator

Preparation

You need to perform the following steps to use this package:

  1. Clone this repository using recursive. Update submodules every time you pull this repo
  2. Install required packages using install_requirements.sh script
  3. Build libuavcan v0.1 as a static library and install it on the system globally
  4. (optionally) Build dsds if you want to use custom messages
cd catkin_ws/src
git clone --recursive git@github.com:InnopolisAero/uavcan_communicator.git
cd uavcan_communicator
git submodule update --init --recursive
./scripts/install_requirements.sh
./scripts/install_libuavcan.sh
./scripts/compile_dsdl.sh

Running

  1. At first, you need to create a virtual can port
  2. Then specify in config/params.yaml which conversions do you need to use
  3. Then launch communicator typing:

Example:

roslaunch uavcan_communicator inno_dynamics_communicator.launch

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/InnopolisAero/uavcan_communicator.git
VCS Type git
VCS Version master
Last Updated 2021-09-06
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
uavcan_communicator 0.0.0
uavcan_msgs 0.0.0

README

Uavcan communicator

Uavcan communicator is a bridge between UAVCAN and ROS.

It covers a minimal set of sensors required for such applications as PX4 UAVCAN HITL simulation. This communicator can be used for other purposes as well.

The tables below represent the supported conversions:

UAVCAN->ROS

Brige name ROS msg UAVCAN msg
1 ActuatorsUavcanToRos sensor_msgs/Joy esc::RawCommand
2 ArmUavcanToRos std_msgs::Bool esc::RawCommand
3 AhrsSolutionUavcanToRos sensor_msgs::Imu ahrs::AhrsSolution
4 EscStatusUavcanToRos uavcan_msgs::EscStatus esc::Status
5 CircuitStatusUavcanToRos uavcan_msgs::CircuitStatus power::CircuitStatus

ROS->UAVCAN

Brige name ROS msg UAVCAN msg
1 BaroStaticTemperatureRosToUavcan uavcan_msgs/StaticTemperature air_data::StaticTemperature
2 BaroStaticPressureRosToUavcan uavcan_msgs/StaticPressure air_data::StaticPressure
3 DiffPressureRosToUavcan uavcan_msgs/RawAirData air_data::RawAirData
4 GpsRosToUavcan uavcan_msgs/Fix gnss::Fix
5 ImuRosToUavcan sensor_msgs/Imu ahrs::RawIMU
6 MagnetometerRosToUavcan sensor_msgs/MagneticField ahrs::MagneticFieldStrength
7 EscStatusRosToUavcan uavcan_msgs/EscStatus esc::Status
8 IceReciprocatingStatusRosToUavcan uavcan_msgs/IceReciprocatingStatus ice::reciprocating::Status
9 IceFuelTankStatusRosToUavcan uavcan_msgs/IceFuelTankStatus ice::FuelTankStatus
10 BatteryInfoRosToUavcan sensor_msgs/BatteryState power::BatteryInfo

Here we try to use default ROS messages as much as possible, but sometimes we need to define our own messages uavcan_msgs.

Usage example

Below you can see an example of using the uavcan_communicator in conjunction with a VTOL dynamics simulator.

uavcan vtol dynamics simulator

Preparation

You need to perform the following steps to use this package:

  1. Clone this repository using recursive. Update submodules every time you pull this repo
  2. Install required packages using install_requirements.sh script
  3. Build libuavcan v0.1 as a static library and install it on the system globally
  4. (optionally) Build dsds if you want to use custom messages
cd catkin_ws/src
git clone --recursive git@github.com:InnopolisAero/uavcan_communicator.git
cd uavcan_communicator
git submodule update --init --recursive
./scripts/install_requirements.sh
./scripts/install_libuavcan.sh
./scripts/compile_dsdl.sh

Running

  1. At first, you need to create a virtual can port
  2. Then specify in config/params.yaml which conversions do you need to use
  3. Then launch communicator typing:

Example:

roslaunch uavcan_communicator inno_dynamics_communicator.launch

CONTRIBUTING

No CONTRIBUTING.md found.