首页 > 其他分享 > 9、教程-8 使用ROS

9、教程-8 使用ROS

时间:2023-07-28 09:34:49浏览次数:34  
标签:教程 ROS sudo webots 使用 Webots ros 节点

本教程介绍如何使用webots附带的webots_ros包中的节点。
这些例子在Linux上用ROS Noetic Ninjemys进行了测试。如果您使用不同的平台或古老的ROS分发,则不保证它们会起作用。

检查Webots ROS API的兼容性

Webots包包含使用最新ROS发行版构建的预编译ROS API:
Ubuntu 20.04 tarball包与ROS Noetic兼容。如果您计划使用不同的ROS发行版,建议安装tarball包并重新编译ROS API:

export ROS_DISTRO=noetic  # or ROS_DISTRO=melodic, etc.
cd ${WEBOTS_HOME}/projects/default/controllers/ros
make

安装ROS以及Webots_ros包

为了使用这些节点,您首先需要安装ROS框架。要在Ubuntu上安装最新版本的ROS,请使用以下命令:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-noetic-desktop-full ros-noetic-moveit # takes time, get a coffee :)
sudo apt-get install python3-rosdep
sudo rosdep init
rosdep update

欲了解更多信息或在其他平台上安装,请阅读http://wiki.ros.org/ROS/Installation.除非您需要其他应用程序的旧版本,否则您应该选择最新的发行版(NoeticNinjemys)。
要安装最新版本的webots_ros软件包,请使用以下命令:

sudo apt-get install ros-noetic-webots-ros

要从源代码安装软件包,请阅读webots_ros-from sources。
如果您以前从未使用过ROS框架,强烈建议您遵循以下教程(初级):http://wiki.ros.org/ROS/Tutorials.这些教程还将帮助您设置ROS环境并初始化您的catkin工作区。最低要求是遵循这些说明(摘自ROS教程1.1.1)。

  1. 打开一个终端
  2. 使用这个来检查ROS环境是否ok,printenv | grep ROS
  3. source /opt/ros/noetic/setup.bash
  4. Create a catkin_ws workspace for ROS:
    1. Create some folders: mkdir -p ~/catkin_ws/src
    2. Go back in the main folder: cd ~/catkin_ws/
    3. Generate files by compilation: catkin_make
    4. Source again the new files: source devel/setup.bash
  5. To make sure your workspace is properly set-up by the setup script, make sure ROS_PACKAGE_PATH environment variable includes the directory you are in. The echo $ROS_PACKAGE_PATH command should return /home/youruser/catkin_ws/src:/opt/ros/noetic/share.
  6. The last step is to set the WEBOTS_HOME environment variable: export WEBOTS_HOME=/usr/local/webots. If you installed Webots in a different place, adapt the variable. This line can be added to your .bashrc file.

运行节点

您可以使用以下命令(例如e_puck_line)使用ROS启动任何模拟:

source /opt/ros/noetic/setup.bash
roslaunch webots_ros e_puck_line.launch

此启动文件将启动Webots(应设置Webots_HOME环境变量)并启动相应的节点。

Webots的随机数生成器的种子在模拟开始时初始化,而不是在ROS节点连接时初始化。必须运行Webots才能连接ROS节点。然而,我们不能保证在ROS节点连接之前它会运行多久。因此,由于ROS节点连接时的噪声略有不同,传感器测量值和电机命令在每次运行时会略有不同。这可能会对机器人的行为产生影响,从而使这种模拟无法完全再现。您可以使用--synchronize参数来确保在ROS节点连接之前不会运行Webots。这有助于使基于ROS的模拟具有可重复性。
如果您想为ROS主机、Webots模拟和/或节点使用不同的计算机,则必须能够通过SSH以两种方式连接到它们中的每一个。这些计算机的主机名和IP地址应列在每台计算机的已知主机列表中,ROS_MASTER_URI变量应相应调整。

 

创建一个新节点

这些示例只显示了ROS和Webot接口的几种可能性,但您可以构建自己的节点来连接Webot。这些节点的源代码可以在webots_ros包的存储库中找到。
robot_information_parser节点是最基本的节点,是开始构建自己的节点的良好基础。complete_test节点没有显示任何特定的应用程序,但包含了几乎详尽的Webots API函数列表。
Webots API中的所有函数都有相应的服务或主题。您可以在参考手册中找到与每个设备相关的所有服务和主题的定义。

 

webots_ros包

如果您运行的是最新版本的Webots,设置Webots_ros包的最简单方法是直接从包管理器安装ros-$ros_DISTRO-Webots-ros包,如上所述。但是,如果您运行的是旧版本的Webots,某些功能可能无法完全支持,或者可能会被最新的ros-$ros_DISTRO-Webots-ros包破坏。在这种情况下,可以按照ros wiki页面上的说明,从源安装较旧的webots_ros软件包版本,并在webots_ros GitHub存储库中选择与webots版本匹配的标签/版本。

 

标签:教程,ROS,sudo,webots,使用,Webots,ros,节点
From: https://www.cnblogs.com/gary-guo/p/17586737.html

相关文章

  • python教程 入门学习笔记 第2天 第一个python程序 代码规范 用默认的IDLE (Python GUI
    四、第一个python程序1、用默认的IDLE(PythonGUI)编辑器编写2、在新建文件中写代码,在初始窗口中编译运行3、写完后保存为以.py扩展名的文件4、按F5键执行,在初始窗口观看运行结果5、代码规范:1)先保存再执行2)一句代码单独占一行3)语法中的符号,必须使用英文4)代码前面不能有......
  • EndeavourOS-i3配置(Archlinux)
    >系统信息:>>NAME="EndeavourOS">PRETTY_NAME="EndeavourOS">ID="endeavouros">ID_LIKE="arch">BUILD_ID=rolling>ANSI_COLOR="38;2;23;147;209">HOME_URL="https://endeavou......
  • 使用 AppFuse 的七个理由
    [url]http://www.ibm.com/developerworks/cn/java/j-appfuse/[/url]使用AppFuse快速构建J2EE应用[url]http://www.ibm.com/developerworks/cn/java/j-lo-appfuse/[/url]AppFuse是一个开放源码的项目和应用程序,它使用了在Java平台上构建的开放源码工......
  • CentOS 6 安装配置教程【完整版】
    [url]http://yp.oss.org.cn/blog/show_resource.php?resource_id=1069[/url]一.准备安装CentOS61.CentOS简介CentOS是甚么?CentOS是一个基于RedHat企业级Linux提供的可自由使用的源代码企业级的Linux发行版本。每个版本的CentOS都会获得七年的支......
  • 不错的shell 脚本教程
    [url]http://neoman.iteye.com/blog/1485862[/url]超强视频教程推荐】方老师shell脚本讲座。特别适合新手,也是老手复习的好资料下载地址:(一)shell脚本与应用示例.rmvb:[url]http://szdxr008.qjwm.com/down_2730621.html[/url](二)三剑客--文本处理......
  • 关于Jquery jqGrid的使用
    [color=red][b]官方文档[/b][/color]:[url]http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs[/url]jqGrid使用总结[url][/url]jqGrid的属性列表:[url]http://www.helloweba.com/view-blog-162.html[/url]jqgrid的一些操作动态增加列用......
  • 9、教程-6 第一个PROTO文件
    本教程的目的是创建与上一教程中的四轮机器人相对应的PROTO文件。目前,机器人的定义完全包含在世界文件中。在PROTO文件中移动此定义将允许您使用此机器人,而无需完全复制和粘贴其定义(在同一世界或不同世界中多次)。在您喜欢的文本编辑器中打开上一教程中创建的世界4_wheels_robot.......
  • 9、教程-7 Supervisor
    主管监督一个世界,并可以设置或获取有关它的信息。本教程将教你:Howtomoveobjectsusingthesupervisor.Howtodeleteanodeandspawnanotherinitsplace.Howtotracktheevolutionofanobjectinthescene.Howtochangethepropertiesofanobject,namely......
  • 如何使用地图软件制作一个自定义的旅游线路示意图 All In One
    如何使用地图软件制作一个自定义的旅游线路示意图AllInOneVlog视频Vlog视频博客Videoblog、Videolog如何用GoogleMap制作旅游路线图创建新地图添加线路(自动生成连线)预览分享https://www.google.com/maps/d/https://www.google.com/maps/d/ed......
  • 9、教程-5 四轮机器人
    本教程旨在从头开始创建您的第一个机器人。机器人将由一个身体、四个轮子和两个距离传感器组成。结果如图所示。下图显示了机器人的俯视图。tutorial_4_wheels_robot.png四轮机器人的三维视图。请注意,机器人主体及其轮子的坐标系表示以相同的方式定向。它们的+x矢量(红色)定义机器......