Coder Social home page Coder Social logo

dfki-ni / mir_robot Goto Github PK

View Code? Open in Web Editor NEW
226.0 226.0 155.0 3.15 MB

ROS support for the MiR Robots. This is a community project to use the MiR Robots with ROS. It is not affiliated with Mobile Industrial Robots.

License: BSD 3-Clause "New" or "Revised" License

CMake 6.99% Python 61.57% C++ 20.78% MATLAB 10.13% Ruby 0.53%

mir_robot's People

Contributors

ipa-fez avatar krause92 avatar matthias-mayr avatar mintar avatar moooeeeep avatar niniemann avatar oscar-lima avatar pumablattlaus 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  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  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  avatar  avatar  avatar

mir_robot's Issues

Add documentation about MIR and mir_bridge functionalities

We recently got a new MIR200 and since it comes with a new software version, it was not directly compatible with this ROS driver.

We spent quite some time to figure out, how the MIR would work, how it connects with rosbridge and why it was not working right away. With the insight we obtained up to now, we could have saved quite some of it, if there would have been some more documentation, e.g.

  • That MIR is actually running ROS internally (although that didn't really take long to figure out)
  • A figure of the architecture like ROS - mir_driver - rosbridge - rosbridge - MIR
  • That one can actually just connect to the roscore on MIR. I misread the network specifications and thought that all the ports would be closed, so I though our only access would be through rosbridge.

All the manuals I got with the MIR leave out, that it runs ROS and a lot of other tips and tricks that appear in various issues here. It seems to me that it would be a lot of help for people if this implicit knowledge would be expressed somewhere.
What do you think?

the execution can't succeed.

I do the simulation step by step, but the execution can't succeed as the following:
peek 2018-12-22 11-33
I think there maybe some error in the model or parameter setting, Is it?

roslaunch mir_navigation hector_mapping.launch.xml

Running the above command gives the following output
SUMMARY

PARAMETERS

  • /hector_mapping/advertise_map_service: True
  • /hector_mapping/base_frame: base_footprint
  • /hector_mapping/laser_max_dist: 30.0
  • /hector_mapping/laser_min_dist: 0.4
  • /hector_mapping/laser_z_max_value: 1.0
  • /hector_mapping/laser_z_min_value: -1.0
  • /hector_mapping/map_frame: map
  • /hector_mapping/map_multi_res_levels: 3
  • /hector_mapping/map_pub_period: 2.0
  • /hector_mapping/map_resolution: 0.05
  • /hector_mapping/map_size: 2048
  • /hector_mapping/map_start_x: 0.5
  • /hector_mapping/map_start_y: 0.5
  • /hector_mapping/map_update_angle_thresh: 0.06
  • /hector_mapping/map_update_distance_thresh: 0.4
  • /hector_mapping/map_with_known_poses: False
  • /hector_mapping/odom_frame: odom_comb
  • /hector_mapping/pose_update_topic: poseupdate
  • /hector_mapping/pub_map_odom_transform: True
  • /hector_mapping/pub_map_scanmatch_transform: True
  • /hector_mapping/pub_odometry: False
  • /hector_mapping/scan_subscriber_queue_size: 5
  • /hector_mapping/scan_topic: scan
  • /hector_mapping/sys_msg_topic: syscommand
  • /hector_mapping/tf_map_scanmatch_transform_frame_name: scanmatcher_frame
  • /hector_mapping/update_factor_free: 0.4
  • /hector_mapping/update_factor_occupied: 0.9
  • /hector_mapping/use_tf_pose_start_estimate: False
  • /hector_mapping/use_tf_scan_transformation: True
  • /rosdistro: melodic
  • /rosversion: 1.14.4

NODES
/
hector_mapping (hector_mapping/hector_mapping)

ROS_MASTER_URI=http://localhost:11311

ERROR: cannot launch node of type [hector_mapping/hector_mapping]: hector_mapping
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [1]=/home/user/catkin_ws/src
ROS path [2]=/opt/ros/melodic/share
No processes to monitor
shutting down processing monitor...
... shutting down processing monitor complete

I have already sourced the workspace and ros melodic share. hector_mapping.launch.xml is in the package but the roslaunch is still not finding it. Any solutions?
Thank you

Gazebo demo - mapping

Hi,

I was following the instructions for mapping with the mir100 and I encountered some problems. First, under ### mapping: I think it should be

roslaunch mir_navigation hector_mapping.launch without the xml extension.

But this is a minor issue. I have troubles with the command under # navigation:

roslaunch mir_navigation move_base.xml with_virtual_walls:=false

I get this output in the terminal

[ WARN] [1588239096.440906321, 69.100000000]: Timed out waiting for transform from base_footprint to map to become available before running costmap, tf error: canTransform: target_frame map does not exist.. canTransform returned after 69.1 timeout was 0.1.
[ INFO] [1588239096.528079368, 69.160000000]: Using plugin "navigation_map"
[ INFO] [1588239096.548217776, 69.168000000]: Requesting the map...
[ INFO] [1588239096.822569493, 69.372000000]: Resizing costmap to 2048 X 2048 at 0.050000 m/pix
[ INFO] [1588239096.963045774, 69.469000000]: Received a 2048 X 2048 map at 0.050000 m/pix
[ INFO] [1588239096.968869319, 69.472000000]: Using plugin "obstacles"
[ INFO] [1588239096.982339040, 69.481000000]:     Subscribed to Topics: b_scan_marking b_scan_clearing f_scan_marking f_scan_clearing
[ INFO] [1588239097.203873307, 69.606000000]: Using plugin "inflation"
[ INFO] [1588239097.327970419, 69.656000000]: Name is SBPLLatticePlanner
[ INFO] [1588239099.975276407, 70.739000000]: Planning with ARA*
[ INFO] [1588239099.976435074, 70.740000000]: [sbpl_lattice_planner] Initialized successfully
[ INFO] [1588239100.063663768, 70.801000000]: Using plugin "obstacles"
[ INFO] [1588239100.086832803, 70.810000000]:     Subscribed to Topics: b_scan_marking b_scan_clearing f_scan_marking f_scan_clearing
[ INFO] [1588239100.318272605, 70.926000000]: Using plugin "inflation"
[ INFO] [1588239100.438672378, 70.980000000]: Created local_planner nav_core_adapter::LocalPlannerAdapter
[ INFO] [1588239100.441480870, 70.984000000]: Loading plugin dwb_local_planner::DWBLocalPlanner
[ INFO] [1588239100.493732191, 71.007000000]: Using Trajectory Generator "dwb_plugins::StandardTrajectoryGenerator"
[ INFO] [1588239100.597755627, 71.056000000]: Using Goal Checker "dwb_plugins::SimpleGoalChecker"
[ INFO] [1588239100.618203343, 71.068000000]: Using critic "RotateToGoal" (dwb_critics::RotateToGoalCritic)
[ INFO] [1588239100.627164351, 71.071000000]: Using critic "ObstacleFootprint" (dwb_critics::ObstacleFootprintCritic)
[ INFO] [1588239100.634960493, 71.075000000]: Using critic "PathAlign" (dwb_critics::PathAlignCritic)
[ INFO] [1588239100.652369691, 71.084000000]: Using critic "PathDistPruned" (mir_dwb_critics::PathDistPrunedCritic)
[ INFO] [1588239100.657793369, 71.087000000]: Using critic "PathProgress" (mir_dwb_critics::PathProgressCritic)
[ INFO] [1588239100.783721242, 71.172000000]: Recovery behavior will clear layer obstacles
[ INFO] [1588239100.785131502, 71.175000000]: Recovery behavior will clear layer obstacles
[ INFO] [1588239101.025901727, 71.326000000]: odom received!

Then I run

rviz -d $(rospack find mir_navigation)/rviz/navigation.rviz

In the rviz window no black lines or dots are drawn and while commanding the robot to move this does move in gazebo but nor in rviz.

I tested this on Ubuntu 16.04 / Kinetic Kame respectively 18.04 / Melodic, both running on VMWare Fusion 11.5 on a Mac.

I tried to find out what it could be, but with no success.

Thanks in advance

mir cannot move in rviz

Hi! I have created a moveit package for mir with a manipulator. However, when I add this in my launch file mir is not able to move around in rviz when I launch the move_group.

     <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
          <rosparam param="source_list">[mir/joint_states]</rosparam>
          <param name="rate" value="200.0" />
      </node>  

tf_remap of a frame not working

I am trying to remap the name of a tf like follows:

<node pkg="tf" type="tf_remap" name="tf_remapper" output="screen">
  <rosparam param="mappings">
    [{old: camera_floor_depth_optical_frame, new: /camera_depth_optical_frame}]
  </rosparam>
</node>

The problem comes that the original tf name remain the same.. why is this happening?

Could not find a package configuration file provided by "costmap_queue"

CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package):
  Could not find a package configuration file provided by "costmap_queue"
  with any of the following names:

    costmap_queueConfig.cmake
    costmap_queue-config.cmake

  Add the installation prefix of "costmap_queue" to CMAKE_PREFIX_PATH or set
  "costmap_queue_DIR" to a directory containing one of the above files.  If
  "costmap_queue" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  mir_robot/mir_dwb_critics/CMakeLists.txt:6 (find_package)


-- Could not find the required component 'costmap_queue'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "costmap_queue"
  with any of the following names:

    costmap_queueConfig.cmake
    costmap_queue-config.cmake

  Add the installation prefix of "costmap_queue" to CMAKE_PREFIX_PATH or set
  "costmap_queue_DIR" to a directory containing one of the above files.  If
  "costmap_queue" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  mir_robot/mir_dwb_critics/CMakeLists.txt:6 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/chbloca/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/chbloca/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed
chbloca@chbloca-ThinkPad-T470s:~/catkin_ws$ 

How come does this error appear during compilation since I have done previously:
$ sudo apt-get install ros-kinetic-navigation

Robot model moving itself

I tried this repository for a research purpose. After some time playing with it, I noticed that mobile base is moving, even if /cmd_vel topic is empty. The base is also moving very slowly right after enabling physics engines in gazebo.
I have done some review of a urdf model and all launch files, and I've noticed that it might be caused by disabling friction for wheels. I tried to change it, and if I set it in this way (in file mir_100.gazebo.xacro)

<xacro:macro name="set_all_wheel_frictions" params="prefix">
    <xacro:set_wheel_friction link="${prefix}left_wheel_link" friction="0.4"/>
    <xacro:set_wheel_friction link="${prefix}right_wheel_link" friction="0.4"/>
    <xacro:set_wheel_friction link="${prefix}fl_caster_wheel_link" friction="0.4"/>
    <xacro:set_wheel_friction link="${prefix}fr_caster_wheel_link" friction="0.4"/>
    <xacro:set_wheel_friction link="${prefix}bl_caster_wheel_link" friction="0.4"/>
    <xacro:set_wheel_friction link="${prefix}br_caster_wheel_link" friction="0.4"/>
</xacro:macro>

and small modification in mir_100_v1.urdf.xacro

<!-- disabled, because it doesn't make a difference in Gazebo: -->
<xacro:set_all_wheel_frictions prefix="${prefix}"/>

then the model was still.
I haven't calculated friction coefficients, I just have used arbitrary chosen values (for which simulator seems to be stable).

Some floor camera topics missing

Hello there! I suggest you an improvement to your package.

Here is a list of the topics related to floor camera obtained with
roslaunch mir_driver mir.launch

/camera_floor/background
/camera_floor/depth/parameter_descriptions
/camera_floor/depth/parameter_updates
/camera_floor/depth/points
/camera_floor/filter/parameter_descriptions
/camera_floor/filter/parameter_updates
/camera_floor/floor
/camera_floor/obstacles
/camera_floor/transform/parameter_descriptions
/camera_floor/transform/parameter_updates

And here without your launcher, using
export ROS_MASTER_URI=http://192.168.12.20:11311

/camera_floor/background
/camera_floor/camera_info
/camera_floor/driver/color/camera_info
/camera_floor/driver/color/image_raw
/camera_floor/driver/color/image_raw/compressed
/camera_floor/driver/color/image_raw/compressed/parameter_descriptions
/camera_floor/driver/color/image_raw/compressed/parameter_updates
/camera_floor/driver/depth/camera_info
/camera_floor/driver/depth/color/points
/camera_floor/driver/depth/image_rect_raw
/camera_floor/driver/depth/image_rect_raw/compressed
/camera_floor/driver/depth/image_rect_raw/compressed/parameter_descriptions
/camera_floor/driver/depth/image_rect_raw/compressed/parameter_updates
/camera_floor/driver/extrinsics/depth_to_color
/camera_floor/driver/parameter_descriptions
/camera_floor/driver/parameter_updates
/camera_floor/filter/parameter_descriptions
/camera_floor/filter/parameter_updates
/camera_floor/filter/visualization_marker
/camera_floor/floor
/camera_floor/obstacles
/camera_floor/transform/parameter_descriptions
/camera_floor/transform/parameter_updates
/camera_top/background
/camera_top/obstacles

There are missing topics being recovered from your bridging launcher.

publishing to cmd_vel doesn't move the mir

Hello,

I've been having this issue where I cannot get the mir to move by publishing to the cmd_vel topic with the following command:

"rostopic pub /cmd_vel geometry_msgs/Twist -r 100 -- '[0.0, 0.0, 0.0]' '[0.0, 0.0, 0.2]'"

after issuing this command, if I echo the cmd_vel topic I see these values coming back, but the MiR isnt moving (it is in a green idle state). I have already checked the list of pub/sub topics in mir_bridge.py, and the topic cmd_vel is in the SUB_TOPICS section and not the PUB_TOPICS section. Any help would be appreciated.

Thanks!

Synchronizing system time

I have a doubt regarding the fix proposal you give:

To fix this:
go to "Service" -> "Configuration" -> "System settings" -> "Time settings" -> "Set device time on robot"
Afterwards, the ROS software on the robot will restart, so you'll have to start move_base again (see below).

I don't know at what "Service" you are making reference. Do you mean with that to access the web interface of the robot and access the configuration from there? i.e. "System" -> "Settings" -> "Date & Time" ?

Because I tried that and I still get errors when I try to:
rosrun gmapping slam_gmapping scan:=/scan map:=/gmapping/map

Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 1.54393e+09 according to authority unknown_publisher
Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
         at line 277 in /tmp/binarydeb/ros-kinetic-tf2-0.5.18/src/buffer_core.cpp

And
rosrun tf tf_monitor

RESULTS: for all Frames

Frames:
Frame: /back_laser_link published by unknown_publisher Average Delay: -3603.23 Max Delay: 0
Frame: /base_footprint published by unknown_publisher Average Delay: -3603.12 Max Delay: 0
Frame: /base_link published by unknown_publisher Average Delay: -3603.23 Max Delay: 0
Frame: /camera_floor_depth_optical_frame published by unknown_publisher Average Delay: -3603.12 Max Delay: 0
Frame: /camera_floor_link published by unknown_publisher Average Delay: -3603.23 Max Delay: 0
Frame: /front_laser_link published by unknown_publisher Average Delay: -3603.24 Max Delay: 0
Frame: /imu_link published by unknown_publisher Average Delay: -3603.24 Max Delay: 0
Frame: /odom published by unknown_publisher Average Delay: -3603.3 Max Delay: 0
Frame: bl_caster_rotation_link published by unknown_publisher Average Delay: 0.0347947 Max Delay: 0.0939313
Frame: bl_caster_wheel_link published by unknown_publisher Average Delay: 0.0347972 Max Delay: 0.0939345
Frame: br_caster_rotation_link published by unknown_publisher Average Delay: 0.0347989 Max Delay: 0.0939366
Frame: br_caster_wheel_link published by unknown_publisher Average Delay: 0.0348004 Max Delay: 0.0939391
Frame: fl_caster_rotation_link published by unknown_publisher Average Delay: 0.034802 Max Delay: 0.0939414
Frame: fl_caster_wheel_link published by unknown_publisher Average Delay: 0.0348036 Max Delay: 0.0939437
Frame: fr_caster_rotation_link published by unknown_publisher Average Delay: 0.0348052 Max Delay: 0.0939455
Frame: fr_caster_wheel_link published by unknown_publisher Average Delay: 0.0348074 Max Delay: 0.0939473
Frame: imu_frame published by unknown_publisher(static) Average Delay: 0 Max Delay: 0
Frame: left_wheel_link published by unknown_publisher Average Delay: 0.0348088 Max Delay: 0.0939493
Frame: right_wheel_link published by unknown_publisher Average Delay: 0.0348104 Max Delay: 0.0939515
Frame: surface published by unknown_publisher(static) Average Delay: 0 Max Delay: 0
Frame: us_1_frame published by unknown_publisher(static) Average Delay: 0 Max Delay: 0
Frame: us_2_frame published by unknown_publisher(static) Average Delay: 0 Max Delay: 0

All Broadcasters:
Node: unknown_publisher 219.438 Hz, Average Delay: -3123.87 Max Delay: 0.0869416
Node: unknown_publisher(static) 1e+08 Hz, Average Delay: 0 Max Delay: 0

Could you help me fix this issue?
Where can I find the "Service" you make reference?

Dead reckoning with a MiR100

Hi all,

My MiR100 robot (like all others) is really "hesitant" while docking and I am trying to use dead reckoning for the last meter or so of travel so it can dock faster. Even a couple of seconds saved per docking action is a big saving for me.

However, dead reckoning is affected by errors (due to slippage or bumps or uneven surfaces) that may worsen as the robot travels more. Does any one have any ideas on what other kind of feedback I can use in an indoor environment in addition to the odometry? Triangulation using transmitters/receivers or GPS is not an option. Is there any way to extract localization data using the MiR's "out of the box" sensors? Using the camera to recognize fiducials to estimate pose is an option but I am looking for something quick and relatively easier than that for now.

I know the coordinates of different locations on my map in a world frame, and I know the pose of the robot as it moves, also in the world frame. Can I use any capability in the /tf2 library to get another estimate of the robot's current pose. I can then try fusing this new data with information that I am getting from the /odom topic?

Would appreciate any ideas - Thanks!

More of a question, than a issue.

Hi @mintar!
You talked about doing actionlib server/client if the intention is to publish a pose to the MiR robot read in an comment from the issue section.

My goal is to retrieve/load the different positions of a mission created in MiR to a ROS node.
The alternatives i have though about is either to have a subscriber to retrieve the current goal pose of the robot and save the pose objects in database. But the disadvantage would be that the robot would need to do an initial run of the mission. Also implement an actionlib server/client for this.

The other would be to use JSON and REST API to retrieve the position from the mission. This approach would mean that the initial run of the mission is not needed. actionlib would also be implemented here.

My question to you is if these approaches or not is the most effective approach? Some kind of help would be appreciated

Unable to locate package

Hi I'm trying to install the binary version of this package, but can't seem to find it in the ubuntu or debian package repositories. Is there a repository that needs to be added to my source list?

Have tried:

sudo apt install ros-indigo-mir-robot
sudo apt install ros-jade-mir-robot

Post correct x, y and orientation values to MiR100 and MiR200

Hi Mintar,

My MiR100 and MiR200 operate in dynamic environments and constantly lose localization. Could you share how I should go about updating the correct x, y and orientation values (more accurate values which I have obtained by other means). I am guessing I would have a publisher node to constantly publish the correct values and overwrite the x, y and orientation values on the MiR. Looking forward to your reply.

Best,
Vikram

Publishing on topic /cmd_vel not working

I have followed all the issues related to publishing on the /cmd_vel topic. There is a melodic-2.8 branch for the recent software version on mir but it does not work. Seems like it works on mir SW v2.7.2 but does not work 2.8.3.

What changes in the source code i need to make it work with MiR SW v2.8.3?

Any help or update would be appreciated!

Goals send via /move_base_simple do not work with MIR software version > 2.7

When I send goal to /move_base_simple, e.g through Rviz, MIR starts doing random orientations and does not go to the goal. There are two behaviours I found. In both behaviours, MIR just moves a little and starts oscillating. I have pasted the system log for both the behaviours. In the first behaviour, there was no error but in the second behaviour, I received an error
1)

MC | Setting parameter using command: ^KD 2 2 | 17:53:07
-- | -- | --
ย  | MC | Setting parameter using command: ^KI 2 7 | 17:53:07
ย  | MC | Setting parameter using command: ^KP 2 4 | 17:53:07
ย  | MC | Setting parameter using command: ^KD 1 2 | 17:53:07
ย  | MC | Setting parameter using command: ^KI 1 7 | 17:53:07
ย  | MC | Setting parameter using command: ^KP 1 4 | 17:53:07
ย  | move_base_node | MirLocalPlanner: State change 'TurnToGoal' -> 'Stopping' | 17:53:07
ย  | move_base_node | MirLocalPlanner: State change 'GoalSearch' -> 'TurnToGoal' | 17:53:04
ย  | move_base_node | MirLocalPlanner: State change 'FollowPath' -> 'GoalSearch' | 17:53:03
ย  | move_base_node | MirLocalPlanner: State change 'TurnToTarget' -> 'FollowPath' | 17:53:03
ย  | move_base_node | MirLocalPlanner: State change 'FollowPath' -> 'TurnToTarget' | 17:52:59
ย  | move_base_node | Clearing segment with index = 0 | 17:52:59
ย  | move_base_node | MirLocalPlanner: State change 'TurnToTarget' -> 'FollowPath' | 17:52:58
ย  | move_base_node | MirLocalPlanner: State change 'Stopping' -> 'TurnToTarget' | 17:52:58
ย  | move_base_node | MirLocalPlanner: State change 'TurnToTarget' -> 'Stopping' | 17:52:58
ย  | move_base_node | mirLocalPlanner: Got new plan - Length: 0.235928, Segments: 2 - Starting with forward motion | 17:52:58
ย  | move_base_node | MirLocalPlanner: Got new plan from (43.9417, 5.9917, 0.7854) to (43.95, 6.1, 0.0322469) | 17:52:58
ย  | move_base_node | SBPLPlanner: Succesfully created plan - Total time: 0.034 seconds - Total expands: 362 - Expands pr sec: 10672.7 - Final epsilon: 1.00 | 17:52:58
ย  | move_base_node | SBPLPlanner: Making plan from (43.94, 5.99, 37.5) to (43.95, 6.10, 1.8) | 17:52:58
ย  | move_base_node | ** MirEscapeRecovery: Succeded! ** | 17:52:58
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:52:57
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:52:56
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:52:55
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:52:54
ย  | move_base_node | ** MirEscapeRecovery started! ** | 17:52:53
ย  | move_base_node | MirLocalPlanner: State change 'Stopping' -> 'TurnToTarget' | 17:52:53
ย  | move_base_node | MirLocalPlanner: State change 'TurnToTarget' -> 'Stopping' | 17:52:53
ย  | move_base_node | mirLocalPlanner: Got new plan - Length: 0.349652, Segments: 1 - Starting with backwards motion | 17:52:53
ย  | move_base_node | MirLocalPlanner: Got new plan from (44.225, 6.175, 0.3927) to (43.95, 6.1, 0.0322469) | 17:52:53
ย  | move_base_node | SBPLPlanner: Succesfully created plan - Total time: 0.038 seconds - Total expands: 1218 - Expands pr sec: 31990.3 - Final epsilon: 1.00 | 17:52:53
ย  | move_base_node | SBPLPlanner: Making plan from (44.23, 6.19, 33.8) to (43.95, 6.10, 1.8) | 17:52:53
ย  | move_base_node | ** MirEscapeRecovery: Succeded! ** | 17:52:53
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:52:53
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:52:52
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:52:51
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:52:50
ย  | move_base_node | ** MirEscapeRecovery started! ** | 17:52:50
ย  | move_base_node | MirLocalPlanner: State change 'Stopping' -> 'TurnToTarget' | 17:52:50
ย  | move_base_node | MirLocalPlanner: State change 'Stopping' -> 'Stopping' | 17:52:50
ย  | move_base_node | mirLocalPlanner: Got new plan - Length: 0, Segments: 1 - Starting with forward motion | 17:52:50
ย  | move_base_node | MirLocalPlanner: Got new plan from (43.95, 6.1, 0.0322469) to (43.95, 6.1, 0.0322469) | 17:52:50
ย  | move_base_node | SBPLPlanner: Succesfully created plan - Total time: 0.008 seconds - Total expands: 583 - Expands pr sec: 76093.4 - Final epsilon: 1.00 | 17:52:50
ย  | move_base_node | SBPLPlanner: Making plan from (43.93, 6.10, 1.7) to (43.95, 6.10, 1.8) | 17:52:50
MC | Setting parameter using command: ^KD 2 2 | 17:55:36
-- | -- | --
ย  | MC | Setting parameter using command: ^KI 2 7 | 17:55:36
ย  | MC | Setting parameter using command: ^KP 2 4 | 17:55:36
ย  | MC | Setting parameter using command: ^KD 1 2 | 17:55:36
ย  | MC | Setting parameter using command: ^KI 1 7 | 17:55:36
ย  | MC | Setting parameter using command: ^KP 1 4 | 17:55:36
ย  **| move_base_node | Aborting because the robot appears to be oscillating over and over. Even after executing all recovery behaviors | 17:55:36**
ย  | move_base_node | MirLocalPlanner: State change 'Stopping' -> 'TurnToTarget' | 17:55:36
ย  | move_base_node | MirLocalPlanner: State change 'TurnToTarget' -> 'Stopping' | 17:55:36
ย  | move_base_node | mirLocalPlanner: Got new plan - Length: 0.337848, Segments: 1 - Starting with backwards motion | 17:55:36
ย  | move_base_node | MirLocalPlanner: Got new plan from (44.225, 6.025, -0.392685) to (43.95, 6.1, 0.0322469) | 17:55:36
ย  | move_base_node | SBPLPlanner: Succesfully created plan - Total time: 0.031 seconds - Total expands: 1104 - Expands pr sec: 36003.7 - Final epsilon: 1.00 | 17:55:36
ย  | move_base_node | SBPLPlanner: Making plan from (44.23, 6.01, -34.2) to (43.95, 6.10, 1.8) | 17:55:36
ย  | move_base_node | ** MirEscapeRecovery: Succeded! ** | 17:55:36
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:55:36
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:55:34
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:55:33
ย  | move_base_node | ** MirEscapeRecovery: Trying to escape.. ** | 17:55:32
ย  | move_base_node | ** MirEscapeRecovery started! ** | 17:55:32
ย  | move_base_node | MirLocalPlanner: State change 'Stopping' -> 'TurnToTarget' | 17:55:32
ย  | move_base_node | MirLocalPlanner: State change 'Stopping' -> 'Stopping' | 17:55:32
ย  | move_base_node | mirLocalPlanner: Got new plan - Length: 0, Segments: 1 - Starting with forward motion | 17:55:32
ย  | move_base_node | MirLocalPlanner: Got new plan from (43.95, 6.1, 0.0322469) to (43.95, 6.1, 0.0322469) | 17:55:32
ย  | move_base_node | SBPLPlanner: Succesfully created plan - Total time: 0.009 seconds - Total expands: 583 - Expands pr sec: 65685.9 - Final epsilon: 1.00 | 17:55:32
ย  | move_base_node | SBPLPlanner: Making plan from (43.94, 6.10, 1.5) to (43.95, 6.10, 1.8) | 17:55:32

Did you encounter this problem in the previous versions of MIR<= 2.3? If yes, any solutions?

MiR100 sensors in Gazebo

Hi there, thank you so much for developing and sharing this ROS driver! It helps a lot.

We have bought a new mir100 recently. From the user manual, we see that the robot has multiple sensors: two laser scanners, two 3D cameras, four ultrasound sensors, and internal sensors (e.g., IMU, motor encoder, accelerometer, wheel encoders). Are all of them integrated into the mir gazebo? From the urdf file, we noticed some may be missing?

We are also trying to pair the sensors with the ros topics. For example, laser scanners --> /f_scan and /b_scan and IMU --> /imu_data. How about the other sensors, especially the 3D camera?

[WARN] : topic 'odom_comb' is not published by MIR

Hi,

I have an issue that this is similar to #17 although I am using the newest version mir_robot on MIR100 with 2.0.18.

In my case, though, when I launch mir.launch there are two warning messages for the unpublished topics:

  • mir_status
  • odom_comb

I am not sure if this is related to the other issue I have that is also related to another issue #7.
Although I update the system time and synchronize the MIR time from the device I have huge delays in tf_monitor.

And, because of that I can't generate the map in rviz, etc. I would appreciate any help. Thanks!

Best,
Tarik

Using package with MIR 200

Is it possible to get this package working with the MiR 200? Can't seem to get the robot to receive published commands from my PC

issue in the source for gazebo simulation in melodic ver.

Hi,

I found that current melodic source base - gazebo simulation doesn't work (by following the commands described in README) with navigation stack,
since the gazebo xacro file for sick_s300 urdf doesn't have (I guess) correct frameName for libgazebo_ros_gpu_laser.so.

And also is there anything to merge two sick lidar datas (front / back) together to output /scan?
since the navigation stack wants /scan topic, not /b_scan and /f_scan.

I modified those two things like,
putting ${prefix} in front of ${link},
and changed topicName from ${topic} to scan (I know that this will make /b_scan data and /f_scan data be mixed and published, so it may cause some trouble on localization)
and now the simulation works perfect with navigation stack.

or if there is other solutions that I couldn't catch, please suggest that.

Cheers.

Clicking on a goal in RViz and sending the MiR to that goal

Hi all,

This situation is similar to #21 but that issue has been closed, hence posting here (if there is a way to re-open closed issues please let me know. I would rather not post the same request in multiple threads)

I am seeing the same behavior as in #21 -- the (real) robot does not move after clicking on a destination in RViz. All the settings, publications and subscriptions are in line with what @mintar has outlined above (screenshots attached). The map displayed in RViz as well as the position of the robot in the map are accurate.

The only step I did differently was:
In RViz, I clicked "2D Nav Goal", then click on the map, as I have been doing in Gazebo.
I have not yet tried clicking on "2D Pose Estimate" and then clicking on the map because I wanted to be cautious and not have the 65kg robot run crazy in the lab :)

The robot runs fine through the MiR web interface but I don't believe you can change goals on the fly there.
Appreciate any help. As always, thank you!

--

Screenshot_2019-05-16_09-21-30
Screenshot from 2019-05-16 09-20-17
Screenshot from 2019-05-16 09-18-28
Screenshot_2019-05-16_09-17-39

demo mapping error

Hi! I was following the mapping procedure. But when I run Rviz the map frame does not exist. I am using melodic, gazebo9.
Screenshot from 2020-05-04 18-17-56

When adding camera topics, lag is huge

Hello. I have been testing the addition of the camera topics to the mir_robot/mir_driver/nodes/mir_bridge.py. The problem comes when there is a huge lag on the streaming of the topic /camera_floor/driver/color/image_raw so does /camera_floor/driver/depth/color/points when doing the ROS bridge with roslaunch mir_driver mir.launch. I have not forgotten to comment also the other available topics which I do not need.
Why is this happening? Is there a solution to this?
Otherwise, is there any way to make compatible the move_base messages between the MiR and the PC (#20)? I do really need a good streaming on the camera and a functional move_base node simultaneously..

Controlling sound and light

Does the package support audio and light control? I can find topics related to audio and light that take a message of type string, but cannot figure out what commands to send.
Thank you.

Simulated laser scanner does not respect namespace/prefix

We are using our MIR in the namespace mir_ and initially had some issues with the navigation in simulation.

More precisely, the laser scan results on /scan are still in the frame front_laser_link rather than mir_front_laser_link and later on in the navigation stack this causes amcl to not publish the transformation between mir_odom_comb and map.

These messages are published by Gazebo using the libgazebo_ros_laser plugin. To work with a prefixed MIR, we had to change the frame configuration of the plugin to this:

<!-- no prefix, plugin always uses a tf_prefix (if none is set it uses robotNamespace) -->
<frameName>${prefix}${link}</frameName>

to make it use the prefix for the frame in the published messages.

Is this, how it's supposed to be or is there another, better way to resolve this?

Velocity control

With this package, is it possible to use the MIR in velocity control mode, where you send the desired linear and angular velocity to the robot?

mir_bridge stays on still waiting for connection to 192.168.12.20

Hi. While trying this package I faced the constant appearing of the warning: still waiting for connection to 192.168.12.20.
My computer is connected to MiR network, I tried both WiFi and Ethernet.
Do you know what could be the root of the problem? Is it on MiR's side or on mine?
Thanks in advance for the help.

Tf frame remapping

Tf remapping error:

Since the mir_bridge seems to do a frame reparenting everytime its starts to stream messages to the tf topic it sometimes happens that tf_prefixes occure repeated:
Wrong remapped frames
Especially the odom frame is subjected to this error.

Reproduction:

This error is hardly reproduceable, since it does not occure every time a tf listener is launched. But the following steps lead to it very often:

  1. Launch the mir.launch in a given namespace and with the tf_prefix arg set
  2. Wait til everythign is setup
  3. Execute a program that looks up mir transformations (In my case I started the tf tree plugin for rqt (see above))
  4. If you got more than one line that says "starting to stream messages on topic 'tf'":

Terminal
the error should be there.

Walkaround:

The error can be avoided by not setting a tf_prefix for the mir_bridge. If no tf_prefix is set and the frames are remapped in another way, no error occures.

topic 'mir_status' is not published by the MiR!

I am working on MIR100 with software 2.2.2. When starting mir.launch, I get a warning that the mir_status topic is not published by MiR and it is true. However I want to get this vital information, for example information about the battery. I have noticed that there exists a topic called robot_status with the message type mirMsgs/RobotStatus which I cannot read:

$ rostopic echo /robot_status
ERROR: Cannot load message class for [mirMsgs/RobotStatus]. Are your messages built?

I can't get further than this and I would appreciate any help.

Client [/mir_auto_bagger] wants topic /move_base/goal to have datatype/md5sum

Hello Mintar.
When I use NavGoal in RViz when executing gmapping and move_base nodes it comes the following error:

[ERROR] [1552579781.696460056]: Client [/mir_auto_bagger] wants topic /move_base/goal to have datatype/md5sum [*/8ac6f5411618f50134619b87e4244699], but our version has [move_base_msgs/MoveBaseActionGoal/660d6895a1b9a16dce51fbdd9a64a56b]. Dropping connection.

The procedure I follow is:

export ROS_MASTER_URI=http://192.168.12.20:11311
export ROS_IP=192.168.12.246

Then I roslaunch the following script to initialize mainly RViz, gmapping and move_base nodes.
Then in RViz I try to use NavGoal but it does not work due to the error that appeared in a message on the same terminal as the roslaunch command. I need those nodes in order to run another package.

<launch>

  <param name="use_sim_time" value="false" />

  <node pkg="laser_filters" type="scan_to_scan_filter_chain" name="laser_filter">
      <remap from="scan" to="f_scan" />
      <rosparam command="load" file="$(find laser_filters)/laserscan_filter.yaml" />
  </node>

  <arg name="scan_topic" default="/scan_filtered" />
  <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">

    <param name="odom_frame" value="odom"/>
    <param name="base_frame" value="base_link"/>
    <param name="map_frame" value="map"/>

    <!-- Process 1 out of every this many scans (set it to a higher number to skip more scans)  -->
    <param name="throttle_scans" value="1"/>

    <param name="map_update_interval" value="2.0"/> <!-- default: 5.0 -->

    <!-- The maximum usable range of the laser. A beam is cropped to this value.  -->
    <param name="maxUrange" value="5.0"/>

    <!-- The maximum range of the sensor. If regions with no obstacles within the range of the sensor should appear as free space in the map, set maxUrange < maximum range of the real sensor <= maxRange -->
    <param name="maxRange" value="10.0"/>

    <param name="sigma" value="0.05"/>
    <param name="kernelSize" value="1"/>
    <param name="lstep" value="0.05"/>
    <param name="astep" value="0.05"/>
    <param name="iterations" value="5"/>
    <param name="lsigma" value="0.075"/>
    <param name="ogain" value="3.0"/>
    <param name="minimumScore" value="0.0"/>
    <!-- Number of beams to skip in each scan. -->
    <param name="lskip" value="0"/>

    <param name="srr" value="0.01"/>
    <param name="srt" value="0.02"/>
    <param name="str" value="0.01"/>
    <param name="stt" value="0.02"/>

    <!-- Process a scan each time the robot translates this far  -->
    <param name="linearUpdate" value="0.1"/>

    <!-- Process a scan each time the robot rotates this far  -->
    <param name="angularUpdate" value="0.05"/>

    <param name="temporalUpdate" value="0.1"/>
    <param name="resampleThreshold" value="0.5"/>

    <!-- Number of particles in the filter. default 30        -->
    <param name="particles" value="10"/>

    <!-- Initial map size  -->
    <param name="xmin" value="-5.0"/>
    <param name="ymin" value="-5.0"/>
    <param name="xmax" value="5.0"/>
    <param name="ymax" value="5.0"/>

    <!-- Processing parameters (resolution of the map)  -->
    <param name="delta" value="0.1"/>

    <param name="llsamplerange" value="0.01"/>
    <param name="llsamplestep" value="0.01"/>
    <param name="lasamplerange" value="0.005"/>
    <param name="lasamplestep" value="0.005"/>

    <remap from="scan" to="$(arg scan_topic)"/>
  </node>

  <arg name="namespace" value=""/>
  <node pkg="move_base" type="move_base" respawn="false" name="move_base_node" output="screen">
    <param name="footprint_padding" value="0.01" />
    <param name="controller_frequency" value="5.0" />
    <param name="controller_patience" value="3.0" />
    <param name="oscillation_timeout" value="30.0" />
    <param name="oscillation_distance" value="0.5" />
    <param name="planner_patience" value="1" />
    <param name="controller_patience" value="1" /> 
    <remap from="cmd_vel" to="mobile_base/commands/velocity"/>
    <param name="recovery_behavior_enabled" value="false" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find rrt_exploration_tutorials)/param/base_local_planner_params.yaml" command="load" />  
    <param name="global_costmap/global_frame" value="$(arg namespace)/map"/>
    <param name="global_costmap/robot_base_frame" value="$(arg namespace)/base_link"/>
    <param name="global_costmap/laser_scan_sensor/sensor_frame" value="/$(arg namespace)/base_laser_link"/>
    <param name="global_costmap/laser_scan_sensor/topic" value="/$(arg namespace)/$(arg scan_topic)"/>    
    <param name="local_costmap/global_frame" value="$(arg namespace)/odom"/>
    <param name="local_costmap/robot_base_frame" value="$(arg namespace)/base_link"/>
    <param name="local_costmap/laser_scan_sensor/sensor_frame" value="$(arg namespace)/front_laser_link"/>
    <param name="local_costmap/laser_scan_sensor/topic" value="/$(arg namespace)/$(arg scan_topic)"/>
    <param name="local_costmap/obstacle_layer/laser_scan_sensor/topic" value="/$(arg namespace)/$(arg scan_topic)"/>
  </node>

  <node pkg="rviz" type="rviz" name="rviz" args="-d $(find rrt_exploration_tutorials)/launch/includes/rviz_config/simple.rviz">
  </node>

</launch>

Is there any idea of why this happens?

In addition, why by using roslaunch mir_driver mir.launch, the opening of RViz is much quicker than just by using export ROS_MASTER_URI=http://192.168.12.20:11311 and export ROS_IP=192.168.12.246?
By the way, I am trying to access the topics from the camera by using roslaunch mir_driver mir.launch but they are not available for some reason. Although by using export ROS_MASTER_URI=http://192.168.12.20:11311 and export ROS_IP=192.168.12.246 they indeed are available.

Thanks for your time.

Slow publishing to /Initialpose

We are using the MiR100 to transport goods from one floor to another. We solved the multiple map problem by making one large map that contains both floors. Then the thought is that whenever we need to switch map, we change the robot's position on the map to either floor1 or floor2.

MapRob5MiR

The program we are currently trying to develop should satisfy the following:

  1. Drive from point 4 -> 3
  2. Change the robot's position to 1 in its own map
  3. Drive to 2
  4. Drive from 2->1
  5. Change position in its own map to 3
  6. Drive to position 4

The first change of position at step 2 is done within a second however, when the robot reaches point 5, and has to change position again, the process takes approximately 40 seconds.

We made a program only for publishing to /initialpose, and this was capable of switching the robot's position between two predefined points every 1 second, approximately. However, when we combined it with moving back and forth between points, we could only change the robot's position in its map once.

We think that the problem is closely related to the movebaseaction client, but we do not know how/why and what to do.

We are using ROS kinetic running Ubuntu 16.04 on a Linux kernel

#include "ros/ros.h"
#include <sstream>
#include <move_base_msgs/MoveBaseAction.h>
#include <actionlib/client/simple_action_client.h>
#include <tf/transform_listener.h>
#include <geometry_msgs/PoseWithCovarianceStamped.h>

typedef actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction> MoveBaseClient;
geometry_msgs::Pose curPos;
double curXpose;
double curYpose;

double pose(int flag);
void onPoseSet(double x, double y, double theta);
typedef boost::array<double, 36> array;
array Covariance = {0.0};

// CALLBACK FUNCTION FOR onPoseSet
void moveBaseCallback(const geometry_msgs::PoseWithCovarianceStamped msg){

curXpose = msg.pose.pose.position.x;
curYpose = msg.pose.pose.position.y;
//ROS_INFO("x: %f, y: %f",curXpose,curYpose);
}

//MOVETOPOINT FUNCTION
void moveToPoint(double x, double y, double rot)
{
  MoveBaseClient ac("move_base",true);
  while(!ac.waitForServer(ros::Duration(5.0))){
    ROS_INFO("Waiting for the move_base action server to come up");
  }

  ros::Rate loop_rate(0.1);
  move_base_msgs::MoveBaseGoal start;
    
  start.target_pose.header.frame_id = "map";
  start.target_pose.header.stamp = ros::Time::now();
  start.target_pose.pose.position.x = x;
  start.target_pose.pose.position.y = y;
  start.target_pose.pose.orientation.z = 0.0;
  start.target_pose.pose.orientation.w = 1.0;

  ac.sendGoal(start);
  ac.waitForResult();

  if(ac.getState() == actionlib::SimpleClientGoalState::SUCCEEDED){
    ROS_INFO("Hooray, the base moved to position");
}else{
ROS_INFO("The base failed to move");
  }
  ros::spinOnce();
  ROS_INFO("current pos x: %f, y: %f,",curXpose,curYpose);

  loop_rate.sleep();
}

//TELEPORT THE ROBOT ON INTERNAL MAP FUNCTION
void onPoseSet(double x, double y, double rot)
{

   ros::Rate loop_rate(0.5);

    ros::NodeHandle nh1;
    ros::Publisher pub_ = nh1.advertise<geometry_msgs::PoseWithCovarianceStamped>     ("/initialpose", 1);
    loop_rate.sleep();

    std::string fixed_frame = "map";
    geometry_msgs::PoseWithCovarianceStamped pose;
    pose.header.frame_id = fixed_frame;
    pose.header.stamp = ros::Time::now();
    // set x,y coord
    pose.pose.pose.position.x = x;
    pose.pose.pose.position.y = y;
    pose.pose.pose.position.z = 0.0;
    //Convert rotation(radians) to Quaternion
        tf::Quaternion quat;
        quat.setRPY(0.0, 0.0, rot);
        tf::quaternionTFToMsg(quat, pose.pose.pose.orientation);
    //Covariance matrix with 0.0
    pose.pose.covariance = Covariance;
    // publish
    ROS_INFO("x: %f, y: %f, z: 0.0 rot: %f",x,y, rot);
   while( x-0.1 > curXpose || curXpose > x+0.1 ||  y-0.1 > curYpose || curYpose > y+0.1 ){

    ROS_INFO("current pos x: %f, y: %f,",curXpose,curYpose);

    pub_.publish(pose);
    loop_rate.sleep();
    ros::spinOnce();
    loop_rate.sleep();
  }
    //ROS_INFO("I am okay sleep");
}

int main(int argc, char** argv)
{

    ros::init(argc, argv, "simple_navigation_goals");
    ros::start();

    ros::NodeHandle nh2;
//    ros::Subscriber sub_ = nh2.subscribe<move_base_msgs::MoveBaseActionFeedback>         ("/move_base/feedback", 1, moveBaseCallback);
    ros::Subscriber sub_ = nh2.subscribe<geometry_msgs::PoseWithCovarianceStamped>     ("/amcl_pose", 10, moveBaseCallback);

     while(ros::ok()){
        ROS_INFO("1");
        moveToPoint(6.8, 10.45, 1.0);
        ROS_INFO("2");
        moveToPoint(6.0, 10.45, 1.0);
       ROS_INFO("teleport");
        onPoseSet(24.25, 14.6, 0.0);
        ROS_INFO("4");
        moveToPoint(24.3, 12.95, 1.0);
        ROS_INFO("3");
        moveToPoint(24.25, 14.6, 1.0);
        ROS_INFO("teleport");
        onPoseSet(24.25, 14.6, 0.0);
        onPoseSet(6.0, 10.45, 0.0);

        ROS_INFO("1");
        moveToPoint(6.8, 10.45, 1.0);
        //moveToPoint(7.85, 14.3, 1.0); old point 1

      }
  ROS_INFO("???");
   return 0;
 }

I need an advice on customizing a MiR platform.

Hello!
First of all, I am impressed what you have done with MiR100.
I would like to get some advice about building a robot system, If you don't mind.

I am trying to control MiR mobile robot in a custom way and all I got is a REST API documentation.
When I look into it, I cannnot find any GET or POST Encoder, IMU, Laserscan, velocity or something.

How is it possible to make it SLAM or navigating with REST API?
I would like to know how you make a bridge on the mobile robot(which has a driving unit black-boxed ) to your ROS package with REST API.

Thank you!

Which topic to publish actions?

Hi guys!!

I have made a script which through python library requests and RestAPI retrieved the x,y and theta coordinates from position markers made in the map of the mir.
The rest of my plan is to take these coordinates and publish them over an simple server/client action and my question is to which topic to publish these values to??
I have looked over the topics /robot_pose, /amcl_pose, move_base_node/current_goal and move_base/feedback and which all publishes the x,y, theta of the robot.

I have also taken a look at which kind of messages these topics publishes and the two which i think is the most relevant is the messages of move_base_node/current_goal and move_base/feedback which publishes messages of the type geometry_msgs/PoseStamped and MoveBaseActionFeedback.

Any help would be appreciated! Thank you in advance

Get velocities of left and right wheel

Question:
Is there a way to get the velocities of the left and right wheel from the MiR?

I was thinking the /joint_states topic would provide such information, but apparently the fake_mir_joint_publisher.py only publishes zeros.

Thanks for any help in advance!

ROS bridge

I have a question:
Is it possible to make the ROS bridge just for certain terminals and not for all of them?

Using ROS with robot software version 2.7

Dear all,
I have a question regarding the ROS integration with MiR100 running robot software versions of 2.7 and 2.8.
As already mentioned in the previous issues, the ROS wrapper available in this repository is not compatible with versions older than 2.3. I was wondering what causes the problem and whether there is a fix for it.
Currently, we run the driver and the robot gets connected successfully, however, nothing happens after commanding velocities through /cmd_vel topic.
I would highly appreciate any help.

The negative average delay

Hi,
i try to connect to the real MIR 100 robot thourgh the driver. However, it shows the message in tf_monitor.

Frame: back_laser_link published by unknown_publisher Average Delay: -3597.61 Max Delay: 0
Frame: base_footprint published by unknown_publisher Average Delay: -3597.49 Max Delay: 0
Frame: base_link published by unknown_publisher Average Delay: -3597.61 Max Delay: 0
Frame: front_laser_link published by unknown_publisher Average Delay: -3597.61 Max Delay: 0
Frame: imu_link published by unknown_publisher Average Delay: -3597.61 Max Delay: 0
Frame: odom published by unknown_publisher Average Delay: -3597.67 Max Delay: 0

All Broadcasters:
Node: unknown_publisher 106.839 Hz, Average Delay: -3597.58 Max Delay: 0

i try to go to the settings on the web interface to set the current time of the robot but it does not work. As a result, there is no trasnformation from some frame in RVIZ

conflict odom frame when mapping

Hi, it is me again. I try to do the mapping by using the gmapping or hectormap for the exploration task. However, when i try to run mapping task, A strange things happen for the position of the robot regards to the map as in the picture belows:
screenshot from 2018-11-10 11-32-49

Would you have any recommend steps that i could use the mapping by my own ros package please

Manually upgrading the package for compatibility with MiR SW 2.8.*

After reading different issues in this repo, and since ourselves too currently share the same condition as many here, namely we're forced to work on a software version of the MiR robot which is above the supported one (2.3.1), we were interested in manually upgrading the ROS software in order to make it fully compatible with MiR software version 2.8 and above.

Many issues were already opened in this regard, our question was, is there a list of steps that you (the code's original developers) would undertake in order to functionally update the ROS code? Since all of the robots in our lab currently work with ROS only, we'd really like to integrate the software in the framework, instead of being forced the REST API.

Thank you very much in advance, I know this isn't easy business

Defining a target pose for MiR100 from the command line

Hi all,

I am new to the ROS framework (~2 weeks). I have installed ROS Kinetic in Ubuntu 16.04, run the MiR simulation in Gazebo (thanks @mintar!) and am now looking to send velocity and pose commands to the physical robot before getting into full-fledged path planning and control:

I have been able to publish to the /cmd_vel topic from the command line and move the robot forward/back and turn it clockwise/counter-clockwise using commands such as:
rostopic pub /cmd_vel geometry_msgs/Twist -r 1 -- '[0.05, 0.0, 0.0]' '[0.0, 0.0, 0.0]'

How can I get the robot to get to a target pose (x, y, theta) from the command line? Does specifying the target destination invoke the DWB planner?

In order to execute @mintar's suggestion in issue #21 re: rviz, I assume I will have to map out the environment (such as a room) first. Is that right and if so, what is the best way to do that?

The robot's position in real life is consistent with the position returned by /robot_pose but its orientation is not. Any thoughts on how to calibrate it accurately?

I would appreciate any help. Thank you in advance!

Getting some problems running the gazebo demo(mapping)

Hi guys!

I having a problem when running Gazebo demo(mapping). I started looking at this fork yesterday and when i runned the hector_mapping launch file it could not run. I looked at the file and saw the hector_mapping node tag so did some research. This ended with finding the fork of hector_slam.

I cloned it into my catkin_ws and this made it possible for the launch file to run.

At this point all things worked. In Gazebo mir_maze_world was up and running

I continued by running commands of #navigation directives and here i get into some problems when i run the navigation.rviz command, rviz opens and when i either run the 2D Nav or using the controller. rviz shows only the mir robot and some shitty background of the potential map.
But in the Gazebo, the mir robot is running but nothing happens with mapping in rviz?

What should I do to get mapping started??

I attached pictures of rviz and gazebo.

err1
err2
err3

Empty costmap topics?

Hello there.
I've been watching something strange with the costmap topics. I tried to echo them even while performing Navigation Goals but they are always empty.
/move_base_node/global_costmap/costmap
/move_base_node/local_costmap/costmap
Any idea how to get them?

Reusability of the code in other MiR models

Hi author, can this package be used also with other MiR models beside the mir100? For example, if i were to change the xacro files to adapt it into the MiR500 model, can i simulate it in Gazebo with this same code?
And, more importantly, can i also connect it to the real robot using the same procedure presented in the README and move it via ROS? Any information on the topic would be very appreciated

Long term support for MIR software versions 2.8 or above

Hi,

I was wondering if there was going to be a long term support for MIR software version 2.7 or higher?
The current repo is for 2.3.1 or lower. Although, some of the issues for later software versions have been address in other Issues section but there might some other issues which have not yet been encountered.
Thanks

About the the laser scan of the model in gazebo

Hello, author!
When I launch mir_maze_world.launch and click the start button, it seems that the data of the laser scan is not correct. Data has always been shown to be "1.0" or "-inf". I would like to consult you about this problem. Thank you!

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.