Git Product home page Git Product logo

kobuki_desktop's Introduction

kobuki_desktop

Visualisation and simulation tools for Kobuki

kobuki_desktop's People

Contributors

ahcorde avatar bit-pirate avatar corot avatar daikimaekawa avatar dirk-thomas avatar ipa-kut avatar jihoonl avatar meyerj avatar nikolausdemmel avatar ram-z avatar slivingston avatar stonier avatar tfoote avatar yhju avatar yuki-asano 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  avatar  avatar

Watchers

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

kobuki_desktop's Issues

Compiling error about c++11 support at ARM

I got an error when compiling the kobuki_gazebo_plugin at NVIDIA TK1. such as
/usr/include/c++/4.8/bits/c++0x_warning.h:32: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options. #error This file requires compiler and library support for the \
and I fixed it when I add following code at ./kobukin_gazebo_plugins/CMakeLists.txt.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLUGS} -std=c++11")

It may useful for any other use kobuki at ARM.

Pyrcc5: not found

I met a problem when i make my space. It stopped here:
[ 98%] Built target kobuki_nodelet
/bin/sh: 1: pyrcc5: not found
make[2]: *** [kobuki_desktop/kobuki_qtestsuite/CMakeFiles/kobuki_qtestsuite] 错误 127
make[1]: *** [kobuki_desktop/kobuki_qtestsuite/CMakeFiles/kobuki_qtestsuite.dir/all] 错误 2
make: *** [all] 错误 2
Invoking "make -j1 -l1" failed
Can you tell me the reason and help me solve it? Thank you.

Wheel drop sensor data not exposed in simulation

I use the melodic branch of this repo, and start up the simulation with roslaunch kobuki_gazebo kobuki_playground.launch.
I get the topics for the events for the bumper and cliff sensors under the namespace /mobile_base/events, but not the wheel drop sensors.

Is there any easy way I can expose this data via a topic as well?
Else, if I need to write some source code to make this happen, could I please be pointed to the right files to edit? This would save me the many hours required to study the architecture of this stack and trace the origin point.

[kobuki_qtestsuite] rqt_plot api changes

rqt_plot API has been changed by this commit.

ros-visualization/rqt_common_plugins@f7a485e

kobuki_qtestsuite is crashing with this error

PluginManager._load_plugin() could not load plugin "kobuki_qtestsuite/Kobuki Test Suite":
Traceback (most recent call last):
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/plugin_handler.py", line 98, in load
    self._load()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/plugin_handler_direct.py", line 54, in _load
    self._plugin = self._plugin_provider.load(self._instance_id.plugin_id, self._context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load
    instance = plugin_provider.load(plugin_id, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load
    instance = plugin_provider.load(plugin_id, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_gui_py/ros_py_plugin_provider.py", line 60, in load
    return super(RosPyPluginProvider, self).load(plugin_id, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load
    instance = plugin_provider.load(plugin_id, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_gui/ros_plugin_provider.py", line 94, in load
    return class_ref(plugin_context)
  File "/home/jihoonl/research/ros/kobuki/src/kobuki_desktop/kobuki_qtestsuite/src/kobuki_qtestsuite/testsuite.py", line 43, in __init__
    self._widget.setupUi()
  File "/home/jihoonl/research/ros/kobuki/src/kobuki_desktop/kobuki_qtestsuite/src/kobuki_qtestsuite/testsuite_widget.py", line 43, in setupUi
    self._ui.battery_profile_frame.setupUi(self._ui.configuration_dock.cmd_vel_topic_name())
  File "/home/jihoonl/research/ros/kobuki/src/kobuki_desktop/kobuki_qtestsuite/src/kobuki_qtestsuite/battery_profile_frame.py", line 51, in setupUi
    self._plot_widget.switch_data_plot_widget(FullSizeDataPlot(self._plot_widget))
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_plot/plot_widget.py", line 150, in switch_data_plot_widget
    self.data_plot.autoscroll(self.autoscroll_checkbox.isChecked())
AttributeError: 'FullSizeDataPlot' object has no attribute 'autoscroll'

Multi-Gazebo Kobukis not updating orientations

KGP - Kobuki Gazebo Plugin

  • Start two gazebo kobukis (segbot + kobuki is ok)
  • Send commands to cmd_vel of one kobuki
  • KGP catches these and moves around properly in gazebo world
  • KGP does not post rotations to the odom topic (translations are there)
  • KGP does not publish rotation information on base_footprint-odom tf.

Kobuki Gazebo simulation

It's a slow process, but it's on its way. Let's gather here all the issues we encounter.
So far:

rqt_plot failed due to kobuki_qtestsuite?

$ rosrun rqt_plot rqt_plot 
rqt_plot.plot: importing PyQtGraphDataPlot
rqt_plot.plot: import of PyQtGraphDataPlot failed
rqt_plot.plot: importing MatDataPlot
rqt_plot.plot: importing QwtDataPlot
WARNING: Package name "swig-wx" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits and underscores.
WARNING: Package name "swig-wx" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits and underscores.
Traceback (most recent call last):
  File "/opt/ros/groovy/lib/rqt_plot/rqt_plot", line 10, in <module>
    sys.exit(main.main(standalone=plugin, plugin_argument_provider=Plot.add_arguments))
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_gui/main.py", line 57, in main
    return super(Main, self).main(argv, standalone=standalone, plugin_argument_provider=plugin_argument_provider)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/qt_gui/main.py", line 468, in main
    plugins = plugin_manager.find_plugins_by_name(plugin)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/qt_gui/plugin_manager.py", line 118, in find_plugins_by_name
    for plugin_id, plugin_full_name in self.get_plugins().items():
  File "/opt/ros/groovy/lib/python2.7/dist-packages/qt_gui/plugin_manager.py", line 124, in get_plugins
    self.discover()
  File "/opt/ros/groovy/lib/python2.7/dist-packages/qt_gui/plugin_manager.py", line 108, in discover
    self._plugin_menu.add_plugin(plugin_descriptor)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/qt_gui/plugin_menu.py", line 79, in add_plugin
    self._enrich_action(action, action_attributes, base_path)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/qt_gui/plugin_menu.py", line 130, in _enrich_action
    raise UserWarning('icon "%s" not found' % str(path))
UserWarning: icon "../src/kobuki_qtestsuite/resources/images/kobuki_icon.png" not found

Add reset odometry option

Just as implemented in the kobuki_node:

$ rostopic info /mobile_base/commands/reset_odometry
Type: std_msgs/Empty

Publishers: None

Subscribers: 
 * /mobile_base_nodelet_manager (http://pirate-nest:51105/)

kobuki_gazebo_plugins: request for tf prefix of base_footprint

Is it possible to instantiate multiple Kobuki models so as to have a single tf tree organized by model names? Organization could be based on prefixes to frame IDs, as with tf_prefix in robot_state_publisher. Similarly, how can the odom topic be pushed into a private namespace?

I have not found a way to achieve these. I suspect that my difficulty is due to a bug in how gazebo_ros_kobuki.cpp handles naming of the topic odom and the frame base_footprint.

I am happy to try to fix it and open a pull request, but I want to first be sure this is indeed an issue. Below is a diff for gazebo_ros_kobuki.cpp (as of 9f509a5) that is a first step toward correction, though it would be better to provide a parameter regarding whether and what to use as a prefix for frame IDs.

--- a/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp
+++ b/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp
@@ -195,7 +195,7 @@ void GazeboRosKobuki::Load(physics::ModelPtr parent, sdf::ElementPtr sdf)
   odom_pose_[0] = 0.0;
   odom_pose_[1] = 0.0;
   odom_pose_[2] = 0.0;
-  odom_pub_ = nh_.advertise<nav_msgs::Odometry>("odom", 1);
+  odom_pub_ = nh_priv_.advertise<nav_msgs::Odometry>("odom", 1);
   odom_reset_sub_ = nh_priv_.subscribe("commands/reset_odometry", 10, &GazeboRosKobuki::resetOdomCB, this);

   /*
@@ -395,7 +395,7 @@ void GazeboRosKobuki::OnUpdate()
    */
   odom_.header.stamp = joint_state_.header.stamp;
   odom_.header.frame_id = "odom";
-  odom_.child_frame_id = "base_footprint";
+  odom_.child_frame_id = node_name_+"/base_footprint";

   // Distance travelled by main wheels
   double d1, d2;

Qtestsuite hydro fixes

  • Add some documentation to the wiki
  • Fix some bugs in plotting due to changes in rqt:
Traceback (most recent call last):
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_plot/plot_widget.py", line 168, in update_plot
    self.data_plot.redraw()
  File "/opt/turtlebot/kobuki_desktop/kobuki_qtestsuite/plugins/../src/kobuki_qtestsuite/full_size_data_plot.py", line 54, in redraw
    data_x, data_y, plot = curve
ValueError: too many values to unpack

/bin/sh: 1: pyrcc5: not found

When i catkin_make my workspace,the error happened in the end:
/bin/sh: 1: pyrcc5: not found
make[2]: *** [kobuki_desktop/kobuki_qtestsuite/CMakeFiles/kobuki_qtestsuite] 错误 127
make[1]: *** [kobuki_desktop/kobuki_qtestsuite/CMakeFiles/kobuki_qtestsuite.dir/all] 错误 2
make: *** [all] 错误 2
Invoking "make -j1 -l1" failed
Can you help me solve it?Thank you.

Problem of arm+kobuki in gazebo

Env: ros kinetic + gazebo 7

when I use hardware_interface/EffortJointInterface for joint transmission_interface/SimpleTransmission,
following error can be found when start gazebo:

[ WARN] [1537083452.199473832, 0.330000000]: Gazebo ROS Kobuki plugin: NaN in d1. Step time: 0.01, WD: 0.07, velocity: -nan
[ WARN] [1537083452.199515712, 0.330000000]: Gazebo ROS Kobuki plugin: NaN in d2. Step time: 0.01, WD: 0.07, velocity: -nan
[ WARN] [1537083452.299705087, 0.430000000]: Gazebo ROS Kobuki plugin: NaN in d1. Step time: 0.01, WD: 0.07, velocity: -nan
[ WARN] [1537083452.299738738, 0.430000000]: Gazebo ROS Kobuki plugin: NaN in d2. Step time: 0.01, WD: 0.07, velocity: -nan

I guess, the reason is we have to ensure the consistency of kobuki wheel hardware interface and joint interface in gazebo, and kobuki wheel hardware is based on velocity as implemented in https://github.com/yujinrobot/kobuki_desktop/blob/devel/kobuki_gazebo_plugins/src/gazebo_ros_kobuki_updates.cpp#L230-L231.

So we can not choose hardware_interface/EffortJointInterface, which applies setForce()

Is it right?

Add IMU model to kobuki plugin

Since we stopped using robot_pose_ekf for the real robot, we should do the same for simulation. This requires adding processing of IMU data to the kobuki plugin.

fix SDF deprecated warnings in the gazebo_ros_kobuki plugin

For example:

/opt/kobuki_workspace/catkin_ws/src/turtlebot_create_desktop/create_gazebo_plugins/src/gazebo_ros_create.cpp: In member function ‘virtual void gazebo::GazeboRosCreate::Load(gazebo::physics::ModelPtr, sdf::ElementPtr)’:
/opt/kobuki_workspace/catkin_ws/src/turtlebot_create_desktop/create_gazebo_plugins/src/gazebo_ros_create.cpp:54:80: warning: ‘std::string sdf::Element::GetValueString(const string&)’ is deprecated (declared at /usr/include/sdformat-1.4/sdf/SDFImpl.hh:226) [-Wdeprecated-declarations]

Playground does not load correctly on initial try

When first loading a world file with models from the online model database, Gazebo can't find those resources (e.g. dae files).

However, once one adds the unknown objects from the online database manually to the world, the next loading of that world file works. I guess, that is because a local copy of the model exists now.

Maybe we have the wrong resource links in our world files?

E.g. the cinder block from the playground.world

<model name='cinder_block'>
       [...]
        <visual name='visual'>
          <geometry>
            <mesh>
              <uri>model://cinder_block/meshes/cinder_block.dae</uri>
            </mesh>
          </geometry>
        </visual>
        [...]
</model>

fails to build with newer boost versions

Same thing happened in Gazebo:

https://bitbucket.org/osrf/gazebo/issue/581/boost-shared_-_cast-are-deprecated-removed

This is the error I get (on my mac) with Boost 1.55.0:

/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:251:31: error: no member named 'shared_dynamic_cast' in namespace 'boost'
  cliff_sensor_left_ = boost::shared_dynamic_cast<sensors::RaySensor>(
                       ~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:251:69: error: expected '(' for function-style cast or type construction
  cliff_sensor_left_ = boost::shared_dynamic_cast<sensors::RaySensor>(
                                                  ~~~~~~~~~~~~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:253:33: error: no member named 'shared_dynamic_cast' in namespace 'boost'
  cliff_sensor_center_ = boost::shared_dynamic_cast<sensors::RaySensor>(
                         ~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:253:71: error: expected '(' for function-style cast or type construction
  cliff_sensor_center_ = boost::shared_dynamic_cast<sensors::RaySensor>(
                                                    ~~~~~~~~~~~~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:255:32: error: no member named 'shared_dynamic_cast' in namespace 'boost'
  cliff_sensor_right_ = boost::shared_dynamic_cast<sensors::RaySensor>(
                        ~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:255:70: error: expected '(' for function-style cast or type construction
  cliff_sensor_right_ = boost::shared_dynamic_cast<sensors::RaySensor>(
                                                   ~~~~~~~~~~~~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:301:20: error: no member named 'shared_dynamic_cast' in namespace 'boost'
  bumper_ = boost::shared_dynamic_cast<sensors::ContactSensor>(
            ~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:301:62: error: expected '(' for function-style cast or type construction
  bumper_ = boost::shared_dynamic_cast<sensors::ContactSensor>(
                                       ~~~~~~~~~~~~~~~~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:325:17: error: no member named 'shared_dynamic_cast' in namespace 'boost'
  imu_ = boost::shared_dynamic_cast<sensors::ImuSensor>(
         ~~~~~~~^
/Users/william/hydro_tb_sim/src/kobuki_desktop/kobuki_gazebo_plugins/src/gazebo_ros_kobuki.cpp:325:55: error: expected '(' for function-style cast or type construction
  imu_ = boost::shared_dynamic_cast<sensors::ImuSensor>(
                                    ~~~~~~~~~~~~~~~~~~^
8 warnings and 10 errors generated.

Branch for upgrading to Melodic

Hi all,

Is it posible to create a branch for Melodic? I don't know if your are planning to release all your kobuki packages for Melodic (pleeeease), but it would be the first step.

I have it running in Melodic from sources, compiling also from sources, with no changes:

  • capabilities
  • kobuki
  • kobuki_desktop
  • yocs_msgs
  • yujin_ocs

But a package would save some time ;)

Best
Francisco

Kobuki Dashboard - Extra Features

Update with extra features that help non-developers exhibit kobuki for us.

  • Priority to features that highlight errors in the system and recovery methods/info.

As we test over the next two-three weeks, list here things we think should be in it.

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.