Coder Social home page Coder Social logo

webots_ros's Introduction

webots_ros

Build Status

The webots_ros package contains examples for interfacing ROS nodes with the standard ROS controller of Webots.

How to set-up the ROS interface in Webots:

Acknowledgement

rosin_logo

Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components. More information: rosin-project.eu

eu_flag

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement no. 732287.

webots_ros's People

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

Watchers

 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

webots_ros's Issues

ros_control failed to contact

Hello,

First of all thumbs UP for open-sourcing Webots and in particular for the ROS integration! 🥇

My problem is that I cannot enable the ros_control integration of Webots to work with any robot other than the Pioneer sample).
I am trying to add cmd_vel support through the use of diff_drive_controller but the ROS side fails to contact the Webots side only for the diff_drive_controller node. Everything else (topics, services) work as expected.

I get errors such as this when running my launch file which is adapted from the Pioneer one and using ros controller for the world used in Tutorial 6: 4-Wheeled Robot

[INFO] [1630803265.662890]: Controller Spawner: Waiting for service controller_manager/switch_controller                     
[INFO] [1630803265.665831]: Controller Spawner: Waiting for service controller_manager/unload_controller                     
[INFO] [1630803265.670367]: Loading controller: robot_diff_drive_controller                                                  
Traceback (most recent call last):                                                                                           
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_base.py", line 562, in connect                           
    self.read_header()                                                                                                       
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_base.py", line 657, in read_header                       
    self._validate_header(read_ros_handshake_header(sock, self.read_buff, self.protocol.buff_size))                          
  File "/opt/ros/noetic/lib/python3/dist-packages/rosgraph/network.py", line 357, in read_ros_handshake_header               
    d = sock.recv(buff_size)                                                                                                 
ConnectionResetError: [Errno 104] Connection reset by peer                                                                   
                                                                                                                             
During handling of the above exception, another exception occurred:                                                          
                                                                                                                             
Traceback (most recent call last):                                                                                           
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py", line 509, in call                           
    transport.connect(dest_addr, dest_port, service_uri)                                                                     
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_base.py", line 589, in connect                           
    raise TransportInitError(str(e)) #re-raise i/o error                                                                     
rospy.exceptions.TransportInitError: [Errno 104] Connection reset by peer                                                    
                                                                                                                             
During handling of the above exception, another exception occurred:                                                          
                                                                                                                             
Traceback (most recent call last):                                                                                           
  File "/opt/ros/noetic/lib/controller_manager/spawner", line 212, in <module>                                               
    if __name__ == '__main__': main()                                                                                        
  File "/opt/ros/noetic/lib/controller_manager/spawner", line 190, in main                                                   
    resp = load_controller(name)                                                                                             
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py", line 442, in __call__                       
    return self.call(*args, **kwds)                                                                                          
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py", line 512, in call                           
    raise ServiceException("unable to connect to service: %s"%e)                                                             
rospy.service.ServiceException: unable to connect to service: [Errno 104] Connection reset by peer                           
[INFO] [1630803265.967798]: Shutting down spawner. Stopping and unloading controllers...                                     
[INFO] [1630803265.969545]: Stopping all controllers...                                                                      
[WARN] [1630803265.972946]: Controller Spawner error while taking down controllers: unable to connect to service: [Errno 111]
 Connection refused                                                                                                          
[controller_spawner-2] process has died [pid 1348, exit code 1, cmd /opt/ros/noetic/lib/controller_manager/spawner robot_diff
_drive_controller __name:=controller_spawner __log:=/home/user/.ros/log/ce532610-0de3-11ec-b206-0242ac110002/controller_spawn
er-2.log].                                                                                                                   
log file: /home/user/.ros/log/ce532610-0de3-11ec-b206-0242ac110002/controller_spawner-2*.log   

Also, if I try to call a controller related service such as list_controllers I also get a communication error:

$  rosservice call /controller_manager/list_controllers
ERROR: Unable to communicate with service [/controller_manager/list_controllers], address [rosrpc://webots_ros:48629]

I have tried adding a respawn=True to the controller part but there is no change.
On the Webots side the controller seems to be working fine

[ INFO] [1630803265.390873175]: Robot's unique name is robot.
[ INFO] [1630803265.407668736]: The controller is now connected to the ROS master.

I have attached my launch script and associated Webots world (the sample world where I modified the controller to ros and set the specific controller_args identical to those in the Pioneer sample)

diff_drive_robot_launch.txt
tutorial_wbt.txt

I have also attached the node, topic, param and service lists if they are of any use.
node.txt
topic.txt
service.txt
param.txt

Some questions about timestamp

I have several question about simulation time.

  1. I can't understand the effect of below sample code get from webots's ros example:
  ros::ServiceClient time_step_client = nh.serviceClient<webots_ros::set_int>(
      controllerName + "/robot/time_step");
  webots_ros::set_int time_step_srv;
  time_step_srv.request.value = TIME_STEP; // TIME_STEP = 16 in my case
  while (ros::ok()) {
    ros::spinOnce();
    if (!time_step_client.call(time_step_srv) ||
        !time_step_srv.response.success) {
      ROS_ERROR("Failed to call service time_step for next step.");
    }
    // Do something here.
  }

I can't find any change as I add or remove the if (...) block.

  1. The message's timestamp I get from ros topic looks like real time timestamp, not webots's simulation timestamp. For example, in below image, the webots's simulation time only passed about 3 seconds, but the timestamp of the message my controller received passed about 9.82 seconds. And I use my watch to confirm that this 9.82 seconds is equal to the passed time since webots is ready.
    timestamp

I also try to use <param name="/use_sim_time" value="true"/> in my launch file, and add the if (...) block in my while loop, but the webot's simulation just hold there, the timestamp will not change. How can I receive the timestamp which is equivalent to the timestamp in webots' simulation?

Improve tutorials descriptions

Tutorials description (http://wiki.ros.org/webots_ros/Tutorials/Sample%20Simulations) should describe in details all the steps required by to run the example.
If additional interactions other than simply starting the demo is required then it should be described in details.
For example in case of teleoperated robots, it is worth explicitly writing which window you have to select before pressing keys to move the robot.

In case of the new TIAGo example, other than writing the commands to start teleop and gmapping, it should also specify:

  • run rviz and set it up
  • how to activate the mapping and slam visualization
  • how to set an arm target position from rviz
  • how to move the robot in the environment
  • etc.

Unable to launch the files

Hello, i have cloned this repo into my catkin/src workspace and when i launch any of the files, its showing nothing, although webots is starting, as shown in Fig.

Screenshot from 2019-09-23 17-14-24

What can be the issue...I have sourced all the files but still this issue.

Thank You

Update webots_ros to work webots_ros2 way

Hi!

I was wondering if there's any reason why webots_ros is not structured the same way webots_ros2. Mainly the import of devices through the </webots> in the URDF.

Is it just because the effort is put into ROS 2, or there's any other reason I'm not seeing?
If so, would a contribution to this repository to replicate its usage be welcomed?

[ros_control] 3D lidar shows as 32 seperate lidars

When adding a 3D lidar (RS Bpearl) I get lots of range images.

Relevant proto piece:

Lidar {
  name "rs_pearl_back"
  defaultFrequency 10
  fieldOfView 6.283185
  horizontalResolution 4800
  verticalFieldOfView 3.14
  numberOfLayers 32
  minRange 0.100000
  maxRange 100.000000
  resolution 0.030000
  noise 0.001
}

Relevant world piece:

DEF robot Robot {
  translation -0.017433563610197295 -0.312639915089031 0.14292597313434285
  rotation -0.000034291145003 -0.002685082297804 -0.999996394572086 0.017569770134047
  controller "ros"
  controllerArgs [
    "--name=beetle_sim"
    "--clock"
    "--use-sim-time"
    "--use-ros-control"
    "--auto-publish"
  ]
}

Topics created:

 * /beetle_sim/rs_pearl_back/laser_scan/layer0 [sensor_msgs/LaserScan]
 * /beetle_sim/rs_pearl_back/laser_scan/layer1 [sensor_msgs/LaserScan]
 * /beetle_sim/rs_pearl_back/laser_scan/layer2 [sensor_msgs/LaserScan]
 * /beetle_sim/rs_pearl_back/laser_scan/layer3 [sensor_msgs/LaserScan]
 * /beetle_sim/rs_pearl_back/laser_scan/layer4 [sensor_msgs/LaserScan]
 * /beetle_sim/rs_pearl_back/laser_scan/layer5 [sensor_msgs/LaserScan]
 * /beetle_sim/rs_pearl_back/laser_scan/layer6 [sensor_msgs/LaserScan]
etc.

These cannot be disabled using a service or not using --auto-publish.

Our simulation rate drops by a factor of 50 using ros_control instead of a custom python controller. I'm suspecting this as we have multiple lidars at high rates.

Expected behavior:

Enable pointcloud by default, do not publish seperate scan topics.

Problem with Odom values and rotation

Hello,

I am trying to implement a simulation of a robot using webot_ros, so far so good. But when I try to rotate the robots, I get a delay between the rotation of the robots in webots, and the rotation in rviz.

Looks for executable in incorrect executable location for Webots on Mac

This may be somewhat niche as this issue might be limited to users of Robostack, but I was asked to raise the issue here and I would really appreciate some help.

This occurs when running roslaunch webots_ros e_puck_line.launch.

When I install webots_ros to my Robostack ROS environment, webots_ros looks for the executable at $WEBOTS_HOME/webots, however on Mac this directory does not exist, and instead needs to be called from /Applications/Webots.app/Contents/MacOS/webots.

I can patch this in my local install by changing the following in webots_launcher.py which allows webots_ros to launch Webots successfully.

command = [os.path.join(os.environ['WEBOTS_HOME'], 'webots'), '--mode=' + options.mode, options.world]

to

command = [os.path.join(os.environ['WEBOTS_HOME'], 'Contents/MacOS/webots'), '--mode=' + options.mode, options.world]

Following this however, I get two other issues which I would really like some advice on if possible:

  1. Running roslaunch webots_ros e_puck_line.launch tells me that a file cannot be found:
File not found: '/Applications/Webots.app/resources/qt_warning_filters.conf'.

I think this is a similar issue with the path not mapping correctly on Mac as this file lives at /Applications/Webots.app/Contents/Resources/qt_warning_filters.conf, however I cannot find that this code is in webot_ros anywhere and seems to come from this line in webots itself. I don't see this error if I launch Webots manually however.

  1. Number 1 doesn't seem to prevent Webots from launching epuck, but Webots does not find the controller directories:
WARNING: DEF EPUCK E-puck: The controller directory has not been found, searched the following locations:
/opt/homebrew/Caskroom/miniforge/base/envs/ros_env/share/webots_ros/controllers/ros/
/Applications/Webots.app/Contents/projects/robots/gctronic/e-puck/controllers/ros/
/Applications/Webots.app/Contents/projects/default/controllers/ros/
/Applications/Webots.app/Contents/Resources/projects/controllers/ros/
WARNING: ros: Could not find the controller directory.
Starting the <generic> controller instead.
INFO: <generic>: Starting controller: /Applications/Webots.app/Contents/Resources/projects/controllers/generic/generic

The controller do however, show up when I manually go to select them, and they seem to work but it would be nice to get rid of the errors:

image

Error with Pioneer 3 AT and Tiago Sims: Could not find parameter robot_description

First off, this is great stuff here! I'm excited to continue digging into this and using it for my own projects.

However, I ran into a problem running the Pioneer 3 AT simulation as shown in the sample tutorials (http://wiki.ros.org/webots_ros/Tutorials/Sample%20Simulations). When I run it, the Webots application opens and displays the robot, but I am unable to get it to respond to the gmapping or teleop_twist_keyboard commands. I get this output in the Ubuntu terminal:

... logging to /home/conardg/.ros/log/345969f2-264c-11ed-a8f1-6da61b464bff/roslaunch-conardg-ThinkBook-Ubuntu-14947.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://conardg-ThinkBook-Ubuntu:42023/

SUMMARY
========

PARAMETERS
 * /pioneer_diff_drive_controller/left_wheel: ['front left whee...
 * /pioneer_diff_drive_controller/pose_covariance_diagonal: [0.001, 0.001, 10...
 * /pioneer_diff_drive_controller/right_wheel: ['front right whe...
 * /pioneer_diff_drive_controller/twist_covariance_diagonal: [0.001, 0.001, 10...
 * /pioneer_diff_drive_controller/type: diff_drive_contro...
 * /rosdistro: noetic
 * /rosversion: 1.15.14

NODES
  /
    controller_spawner (controller_manager/spawner)
    example_state_publisher (robot_state_publisher/robot_state_publisher)
    pioneer_lidar_tf (tf/static_transform_publisher)
    webots (webots_ros/webots_launcher.py)

auto-starting new master
process[master]: started with pid [14962]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 345969f2-264c-11ed-a8f1-6da61b464bff
process[rosout-1]: started with pid [14979]
started core service [/rosout]
process[controller_spawner-2]: started with pid [14986]
process[webots-3]: started with pid [14987]
process[example_state_publisher-4]: started with pid [14988]
process[pioneer_lidar_tf-5]: started with pid [14989]
[ERROR] [1661634426.048904973]: Could not find parameter robot_description on parameter server
[INFO] [1661634426.297805]: Controller Spawner: Waiting for service controller_manager/load_controller
[example_state_publisher-4] process has died [pid 14988, exit code 1, cmd /opt/ros/noetic/lib/robot_state_publisher/robot_state_publisher __name:=example_state_publisher __log:=/home/conardg/.ros/log/345969f2-264c-11ed-a8f1-6da61b464bff/example_state_publisher-4.log].
log file: /home/conardg/.ros/log/345969f2-264c-11ed-a8f1-6da61b464bff/example_state_publisher-4*.log
[example_state_publisher-4] restarting process
process[example_state_publisher-4]: started with pid [15050]
[ERROR] [1661634431.383425751]: Could not find parameter robot_description on parameter server
[example_state_publisher-4] process has died [pid 15050, exit code 1, cmd /opt/ros/noetic/lib/robot_state_publisher/robot_state_publisher __name:=example_state_publisher __log:=/home/conardg/.ros/log/345969f2-264c-11ed-a8f1-6da61b464bff/example_state_publisher-4.log].
log file: /home/conardg/.ros/log/345969f2-264c-11ed-a8f1-6da61b464bff/example_state_publisher-4*.log
[INFO] [1661634431.724358]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1661634431.726992]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1661634431.728499]: Loading controller: pioneer_diff_drive_controller
[INFO] [1661634431.752464]: Controller Spawner: Loaded controllers: pioneer_diff_drive_controller
[INFO] [1661634431.784391]: Started controllers: pioneer_diff_drive_controller
[example_state_publisher-4] restarting process
process[example_state_publisher-4]: started with pid [15103]
^C[example_state_publisher-4] killing on exit
[pioneer_lidar_tf-5] killing on exit
[controller_spawner-2] killing on exit
[webots-3] killing on exit
[INFO] [1661634636.332665]: Shutting down spawner. Stopping and unloading controllers...
[INFO] [1661634636.335120]: Stopping all controllers...
[WARN] [1661634636.496830]: Controller Spawner error while taking down controllers: unable to connect to service: connection from sender terminated before handshake header received. 0 bytes were received. Please check sender for additional details.
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/webots_ros/webots_launcher.py", line 49, in <module>
    subprocess.call(command)
  File "/usr/lib/python3.8/subprocess.py", line 342, in call
    return p.wait(timeout=timeout)
  File "/usr/lib/python3.8/subprocess.py", line 1083, in wait
    return self._wait(timeout=timeout)
  File "/usr/lib/python3.8/subprocess.py", line 1806, in _wait
    (pid, sts) = self._try_wait(0)
  File "/usr/lib/python3.8/subprocess.py", line 1764, in _try_wait
    (pid, sts) = os.waitpid(self.pid, wait_flags)
KeyboardInterrupt
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

I think the primary issue is [ERROR] [1661634426.048904973]: Could not find parameter robot_description on parameter server. I do not know if I set something up wrong or if something is missing in the launch file. I ran into similar errors with the Tiago simulation. The other sample simulations worked fine.

Scaling Issue with R2022b

Since version R2022b launching webots simulations with webots_ros, causes the simulation window to be only a quarter of the supposed size.
webots_ros

It still changes on movement, but the visuals only fill a quarter of the available size.
Mouse inputs are read relative to the full screen though, making it harder to click on objects.

This only happens when using "roslaunch webots_ros " and not while launching webots directly .
webots

Complete test - check condition false and devices publishing NaN values

The complete test is checking every devices.

But the condition to check a device is to wait for a publisher to exist OR (instead of AND) to wait for the 1st message in a callback function.

Additionally, if we change the condition to be AND, some devices (at least gps and gyro) are publishing NaN values.

Subscriber for Devices

This issue is a suggestion rather than a bug.

Currently, devices, such for example a motor, can only be set using a ROS service call. However, in some cases, it might be more useful to have an ROS Subscriber interface to update the simulation value.

For example, in my recent simulation, I simulate a 6-DOF robot manipulator. For this purpose, I convert the /joint_states message to the corresponding ROS service calls to update the motor. Since service calls are synchronous in roscpp, I had to use an AsyncSpinner to make things work smoothly.

However, would there be a Subscriber interface for updating the motor position, the whole task would have been a lot simpler.

Warnings in complete_test

Several warnings come in the Webots console when launching the complete_test.
Most probably the commands sent with ROS have values out of bounds for the motors.

Noetic release

Would you mind releasing these packages also for the newest distribution ROS Noetic? :)

Presence sensor publisher is not working

For some reason, the presence sensor publisher is not working for me.

I tried to enable the presence sensor via ROS service call and subscribing to the ROS topic. However, I can't get it to work. I also verified that the connector is not the problem using a Python-based robot controller.

Any ideas on how to debug the problem?

Release of packages for Webots R2021a

The develop branch was correctly merged in the master branch of this repository after releasing Webots R2021a, but it seems the packages were never actually released.

It is quite important to release the packages soon after releasing a major version of Webots so that the packages stay synchronized with the latest version of Webots (particularly for ROS1 as Webots is not bounded with the packages).

Controllers folder missing in distributed package

The controllers folder is not included in the package when downloading from the ROS repository.

Steps to reproduce

  • Install ROS and then the webots_ros package with sudo apt-get install ros-noetic-webots-ros.
  • Load ROS with source /opt/ros/noetic/setup.bash.
  • Launch the complete_test world with roslaunch webots_ros complete_test.launch.
  • Error messages will be shown in the Webots console about a missing controller (complete_test_emitter).

Wheel velocity of differential drive robot

I'm building my simulation environment by using webots to corporate with ros.
My simulated robot uses differential drive to move.
When I convert the linear & angular velocity to left/right wheel velocity, the robot's real rotation speed is not correct. Here is my code to convert linear & angular velocity to left/right wheel velocity:

void Controller::cb_cmd_vel(const geometry_msgs::Twist &msg) {
  double vel = msg.linear.x;
  double omega = msg.angular.z;
  double r_omega = (vel + omega * WHEEL_DIST / 2) / WHEEL_RADIUS;
  double l_omega = (vel - omega * WHEEL_DIST / 2) / WHEEL_RADIUS;
  ROS_INFO("cmd_vel: %f, omega: %f", vel, omega);
  ROS_INFO("r_omega: %f, l_omega: %f", r_omega, l_omega);

  webots_ros::set_float left_vel_srv;
  left_vel_srv.request.value = l_omega;
  if (left_wheel_vel_.call(left_vel_srv) &&
      left_vel_srv.response.success == 1) {
    // ROS_INFO("Left wheel velocity set to %f", l_omega);
  } else {
    ROS_ERROR("Set left wheel velocity fail");
  }

  webots_ros::set_float right_vel_srv;
  right_vel_srv.request.value = r_omega;
  if (right_wheel_vel_.call(right_vel_srv) &&
      right_vel_srv.response.success == 1) {
    // ROS_INFO("Right wheel velocity set to %f\n", r_omega);
  } else {
    ROS_ERROR("Set right wheel velocity fail");
  }

I set linear velocity = 0 and angular velocity = 0.628318 to test pure rotation, and I expect that robot should take 10 seconds to rotate a round. But it always takes about 11.6 seconds to rotate a round. Here is the demo video link. Is there anything wrong when I use the rotation motor?

RecognitionObject: the parameter "seq" is not continuous.

Hello, I used the function from webots_ros.msg import RecognitionObject.
The object information it returns is not enough. I found that the parameter "seq" is not continuous.
I am not sure if this is a bug. But I am sure that this is not because some messages were not received. Just cyclically publish the information of the two fixed items in a picture

In addition, this can't return the number of the objects. Perhaps this is due to the origin of a message that only contains information about one object.

Looking forward to your reply.

A question about tf transform

I can't find any information about tf transform.
Fox example, after I run the command roslaunch webots_ros pioneer3at.launch and use the rosservice to enable the sensor, I can see the relative sensor topic by command rostopic list.
topic_listr

But there is no topic names /tf and /tf_static. I can't find any information from the webots tutorial. How can I get the tf information of the simulated robot in webots's world?

PermissionError

Describe the Bug
A clear and concise description of what the bug is.

I'm encountering issues while trying to follow Tutorial 9 "Running the Nodes" section.

lab105@4:~/catkin_ws$ roslaunch webots_ros e_puck_line.launch

outcome

... logging to /home/lab105/.ros/log/ebb25ba8-82c7-11ee-bf04-250ecf49806a/roslaunch-4-8564.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://127.0.0.1:42197/

SUMMARY
========

PARAMETERS
 * /rosdistro: noetic
 * /rosversion: 1.16.0

NODES
  /
    epuck_line (webots_ros/e_puck_line)
    webots (webots_ros/webots_launcher.py)

auto-starting new master
process[master]: started with pid [8572]
ROS_MASTER_URI=http://127.0.0.1:11311

setting /run_id to ebb25ba8-82c7-11ee-bf04-250ecf49806a
process[rosout-1]: started with pid [8582]
started core service [/rosout]
process[webots-2]: started with pid [8585]
process[epuck_line-3]: started with pid [8590]
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/webots_ros/webots_launcher.py", line 81, in <module>
    subprocess.call(command)
  File "/usr/lib/python3.8/subprocess.py", line 340, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: '/mnt/c/Program Files/webots'
================================================================================REQUIRED process [webots-2] has died!
process has died [pid 8585, exit code 1, cmd /opt/ros/noetic/lib/webots_ros/webots_launcher.py --world=/opt/ros/noetic/share/webots_ros/worlds/e-puck_line.wbt --mode=realtime --no-gui=false, --stream=false __name:=webots __log:=/home/lab105/.ros/log/ebb25ba8-82c7-11ee-bf04-250ecf49806a/webots-2.log].
log file: /home/lab105/.ros/log/ebb25ba8-82c7-11ee-bf04-250ecf49806a/webots-2*.log
Initiating shutdown!
================================================================================
[epuck_line-3] killing on exit
[webots-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete 
done

According to the provided link "https://answers.ros.org/question/373756/roslaunch-failing-to-launch-webots_ros-simulations/" ,
I attempted to use the /opt/ros/noetic/share/webots_ros/worlds/e_puck_line.wbt.
but it was reported "File does no exist." and tried running webots /opt/ros/noetic/share/webots_ros/worlds/e_puck_line.wbt, and the Webots screen appeared briefly before closing..
Error

System

  • Operating System: [Windows 10, Linux Ubuntu 20.04]
  • Graphics Card: [NVIDIA GeForce RTX 3080]

Additional context
Add any other context about the problem here.

Several Simulations Broken by Coordinate Change

The switch from NUE to ENU was done only at the world level #36, but the controllers were not updated, this, unfortunately, broke several simulations:

pioneer3at

The laser scan orientation is now wrongly oriented, generating a completely random map:
Capture du 2020-10-28 08-14-09

panoramic_view_recorder

The controller is rotating the viewpoint aroud the vertical axis of the robot, but since the vertical axis is not the same anymore, the viewpoint is not looking at the robot anymore while rotating:
Capture du 2020-10-28 08-14-43

complete_test

This simulation is supposed (among other) to show how to communicate with the robot window from a ros controller, but the robot-window was closed in the world project file: https://github.com/cyberbotics/webots_ros/pull/36/files#diff-11ad9c9c91148e9eba152d3450d94d224348d22115d4dd0eb3870ec050ce9d6dL9

all

The coordinates axes optional rendering was enabled in the world project files (https://github.com/cyberbotics/webots_ros/pull/36/files#diff-9c8028e5e83f34ceb703bc77b8dc4fcce19a33661046fe89a132508f9b41adecR9), this doesn't break anything, but I am wondering if this was made on purpose or if this is just an artefact of checking the axes?

other

After such a PR it is good to make a dual PR on the https://github.com/cyberbotics/webots repository to synchronize it with this repo.

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.