/ros_whill_arc

Modified version of ROS Package for WHILL Model CR for NUS ARC ME5400 Project

Primary LanguageC++MIT LicenseMIT

ROS WHILL ARC

ros_whill_arc is a modified version of ros_whill for NUS ME5400 ARC project. The main differences comparing with the original version are:

  • Tested on ROS Noetic
  • Modified Joystick Control
  • Modified CMD_VEL Control
  • Add Lidar to xacro file
  • Add laser scan fusion node
  • Add SLAM launch files
  • Add AMCL and MOVE_BASE launch files

ros_whill is a ROS package for WHILL Model CR.
We also have a FAQ and developers community website for current and potential Model CR users.
For general questions and requests, please visit https://whill.zendesk.com/hc/ja .

Requirements

  • ROS Noetic

Installation

install required ros pkg

sudo apt-get install ros-noetic-serial ros-noetic-pointcloud-to-laserscan ros-noetic-tf2-sensor-msgs

ROS API

Subscribed Topics

~controller/joy (sensor_msgs/Joy)

  • Virtual WHILL joystick input. You can controll WHILL via this topic.

~controller/cmd_vel (geometry_msgs/Twist)

  • cmc_vel input. You can controll WHILL via this topic.
  • This command is only available Model CR firmware updatedd after 2019.12. If you want to use this cmd_vel, please update firmware of Model CR by contact to sales of WHILL.

Published Topics

~states/joy (sensor_msgs/Joy)

  • Joystick status

~states/jointState (sensor_msgs/JointState)

  • Wheel rotate position(rad) and rotation velocity(rad/s)

~states/imu (sensor_msgs/Imu)

  • IMU measured data.

~states/batteryState (sensor_msgs/BatteryState)

  • Battery information

Services

~odom/clear [std_srvs/Empty]

Clear Odometry

~power [std_srvs/SetBool]

True to send power on command, false to power off.

~speedProfile/set [ros_whill/SetSpeedProfile]

You can set WHILL speed profile for ~controller/joy topic.

ros_whill/SpeedPack forward
  float32 speed  # m/s
  float32 acc    # m/ss
  float32 dec    # m/ss
ros_whill/SpeedPack backward
  float32 speed  # m/s
  float32 acc    # m/ss
  float32 dec    # m/ss
ros_whill/SpeedPack turn
  float32 speed  # rad/s
  float32 acc    # rad/ss
  float32 dec    # rad/ss
---
bool success
string status_message

Parameters

~init_speed/*

See: https://github.com/WHILL/ros_whill/blob/melodic-devel/params/initial_speedprofile.yaml

~keep_connected (Bool, default:false)

Set true to try to keep connected by re-opening port and sending power-on command. Though the WHILL automticarry wakes up even you turn off manualy or by power-off command.

~publish_tf (Bool, defualt: true)

False to stop publishing odom to base_link tf. If other node publishs, set value to false.

~serialport (String, default:/dev/ttyUSB0)

SerialPort Setting for ros_whill.launch

The ros_whill.launch is using environmental variable TTY_WHILL for specify which serial port to be used.

Set

Edit your ~/.bashrc (bash) or ~/.zshrc (zsh) to add this line:

export TTY_WHILL=/dev/[YOUR SERIAL PORT DEVICE]

for example

echo "export TTY_WHILL=/dev/ttyUSB0" >> ~/.bashrc

Setting will be applied automatically from next shell starting or booting up.

Apply setting immediately

In your shell:

(bash)

source ~/.bashrc

(zsh)

source ~/.zshrc

Check the current setting

echo $TTY_WHILL  # -> Should be /dev/[YOUR SERIAL PORT DEVICE]

In the case of opening serial port failed

Edit

/lib/udev/rules.d/50-udev-default.rules

And add:

KERNEL=="ttyUSB[0-9]*", MODE="0666"

Launch with Model

$ roslaunch ros_whill ros_whill.launch

Set serial port as an argument of the launch file

roslaunch ros_whill ros_whill.launch serialport:=/dev/[YOUR SERIAL PORT DEVICE]