Code Monkey home page Code Monkey logo

ros_whill's Introduction

ros_whill

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 Melodic

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]

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]

ros_whill's People

Contributors

aquahika avatar f3wenbo avatar s-katsu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ros_whill's Issues

complete documentation

hi @aquahika, thank you for providing us whill repository on github, i am new user. i also new in ROS.
do you have complete documentation from the beginning to setup whill for ROS ?
this readme on this github is quite short

modelc.xacro

Is the orientation of the joints on each wheel correct?

Comparing wrong speed parameter

if (!checkRange(8, this->forward.speed, 30))
return InvalidBackwardSpeed;
if (!checkRange(10, this->forward.acc, 50))
return InvalidBackwardAcc;
if (!checkRange(40, this->forward.dec, 90))
return InvalidBackwardDec;

Backword speed parameters should be compared. This may occur speeds will not set even in a case of correct parameters are specified.

Use Xacro Model

Use Xacro instead of URDF to make easy to integrate other devices.

dae,xacro,urdf files for gazebo?

Hi, I want to try ros_whill by gazebo, but I found that there is no gazebo related files for whill.
Is there any files which related to gazebo is public?

Does this repository plan to support ROS2?

I would like to use ROS2 for research purposes, but this repository does not seem to have been updated recently.
Please let me know if there are any plans to support ROS2.
Thank you.

Changing initial_speefprofile.yaml does nothing

On the melodic-devel branch
I use the package and nodes to control the While remotely.
However, it seems stuck on the default/original speed profile.
The setspeedprofile service is called
I went over the code and according to all the printed debug information it should work except that in reality, nothing changes.

Model CR can not power on sometimes

Sometimes, Model CR can not power on sometimes by ros_whill.
This cause is serial(RS232C) communication timing

  • Model CR receiving command needs 5ms interval in each command
  • Latest Model CR firmware needs 2times command for power on.

catkin_make on Ubuntu 18.04 & ros-melodic failed

In file included from /home/seiya/catkin_ws/src/ros_whill/src/whill_modelc_publisher.cpp:41:0:
/home/xxxxx/catkin_ws/src/ros_whill/src/./odom.h:42:33: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double Odometry::wheel_radius_’ of non-integral type [-fpermissive]
             static const double wheel_radius_ = 0.1325;
                                 ^~~~~~~~~~~~~
/home/xxxxx/catkin_ws/src/ros_whill/src/./odom.h:43:33: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double Odometry::wheel_tread_’ of non-integral type [-fpermissive]
             static const double wheel_tread_  = 0.248;
                                 ^~~~~~~~~~~~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.