ROS Noetic Ninjemys遇见Ubuntu 20.04
ROS Noetic Ninjemys是ROS1最具里程碑式的版本!为什么呢?
使用新立得安装过程更为简洁:
详细安装目录如上图所示。
同时安装了ROS1Noetic和ROS2Foxy,可以参考如下代码进行默认环境选择:
# ROS 1.0 noetic or ROS 2.0 foxy
echo Hello, ROS 1.0 or ROS 2.0? 1=noetic 2=foxy
read ROS
if (($ROS==1));then
source /opt/ros/noetic/setup.bash
#export ROS_PACKAGE_PATH=/home/ros/RobTool/ROS1/Wiki/src:/home/relaybot/RobTool/Cozmo/ros/src:$ROS_PACKAGE_PATH
#source /home/ros/RobTool/ROS1/Wiki/devel/setup.bash
#export ROS_MASTER_URI=http://192.168.1.100:11311
#export ROS_IP=192.168.1.100
echo "noetic"
elif (($ROS==2));then
source /opt/ros/foxy/setup.bash
echo "foxy"
else
echo "Non-ROS"
fi
选择1,并输入roscore:
选择2,并输入ros2:
- roslaunch gazebo_ros range_world.launch
此示例可以演示虚拟距离传感器的读数:
距离为0.08
距离为0.48
距离为0.65
range_world.launch
<?xml version="1.0"?>
<launch>
<!-- these are the arguments you can pass this launch file, for example paused:=true -->
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="extra_gazebo_args" default=""/>
<arg name="gui" default="true"/>
<arg name="debug" default="false"/>
<arg name="physics" default="ode"/>
<arg name="verbose" default="true"/>
<arg name="output" default="screen"/>
<arg name="world" default="gazebo_ros_range"/>
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(find gazebo_plugins)/test/test_worlds/$(arg world).world"/>
<arg name="paused" value="$(arg paused)"/>
<arg name="use_sim_time" value="$(arg use_sim_time)"/>
<arg name="extra_gazebo_args" value="$(arg extra_gazebo_args)"/>
<arg name="gui" value="$(arg gui)"/>
<arg name="debug" value="$(arg debug)"/>
<arg name="physics" value="$(arg physics)"/>
<arg name="verbose" value="$(arg verbose)"/>
<arg name="output" value="$(arg output)"/>
</include>
</launch>
再举个例子,kinetic和melodic简单做一些修改就可以直接在noetic中使用的。
比如:
需要版本号为“9”,当然这里是gazebo11,如何办,修改以下为11即可,gazebo各版本之间的兼容性还是很好的。
安装说明在官方文档中已经详细给出,请务必仔细阅读,与之前ROS1有较大改进,更加简洁方便。
Linux和Windows链接如下: Win10:http://wiki.ros.org/Installation/Windows ubuntu:http://wiki.ros.org/noetic/Installation/Ubuntu debian:http://wiki.ros.org/noetic/Installation/Debian Arch:http://wiki.ros.org/noetic/Installation/ArchLinux
以下为机器翻译
世界ROS乌龟节日快乐! Open Robotics非常荣幸地宣布,第13个ROS 1发行版Noetic Ninjemys现已上市!
如何获得ROS Noetic?
Noetic有什么新功能?
首先,Noetic是唯一正式支持Python 3的 ROS 1版本! 有关重大更改,请参阅《Noetic迁移指南》,以及各个软件包的变更日志,以了解它们具有哪些新功能。
Noetic有什么?
Noetic的此初始发行版中包含369个程序包,而ROS Kinetic中的当前2709个和ROS Melodic中的1939个相比。 navigation和ros_control已发布给Noetic,而MoveIt!尚未发布。
请参阅index.ros.org上的Noetic页面或buildfarm Noetic状态页面,以检查使用的软件包是否可用。
此外,Ubuntu Focal上提供了32位ARM(armhf)软件包,Ubuntu Focal和Debian Buster最高提供了64位ARM(aarch64)软件包ros-noetic-desktop
。
如果我需要的软件包不可用怎么办?
这只是初始版本! 可以将包添加到ROS Noetic,直到达到使用寿命。 这是一个长期支持(LTS)版本,这意味着它将一直支持到2025年5月。
如果缺少想要发布的软件包,请首先检查它是否可以发布,然后通过在源存储库中打开问题来联系维护者。如果这样不起作用,可以放在ROS话语释放类别中。
写在最后
感谢所有帮助实现此版本的维护者和贡献者。 没有您,我们无法做到这一点。
ROS团队
- 无锁编程(一) - Double-checked Locking
- 无锁编程(二) - 原子操作
- 我所理解的Remoting(3):创建CAO Service Factory使接口和实现相互分离
- 无锁编程(三) - 忙等待
- Enterprise Library深入解析与灵活应用(9):个人觉得比较严重的关于CachingCallHandler的Bug
- 无锁编程(四) - CAS与ABA问题
- Linux Kernel CMPXCHG函数分析
- 无锁编程(五) - RCU(Read-Copy-Update)
- 无锁编程(六) - seqlock(顺序锁)
- 无锁编程(七) - 实战
- zookeeper的python客户端安装
- 事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[上篇]
- 震撼:1分钟带你看完IC0的爆炸视频
- 事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[下篇] (提供Source Code下载)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php使用gearman进行任务分发操作实例详解
- laravel框架select2多选插件初始化默认选中项操作示例
- PHP pthreads v3在centos7平台下的安装与配置操作方法
- laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
- PHP Beanstalkd消息队列的安装与使用方法实例详解
- 解决windows上php xdebug 无法调试的问题
- php7 图形用户界面GUI 开发示例
- Django开发的简易留言板案例详解
- php使用redis的有序集合zset实现延迟队列应用示例
- PHP使用openssl扩展实现加解密方法示例
- php使用redis的几种常见操作方式和用法示例
- 使用memory_profiler监测python代码运行时内存消耗方法
- php 多进程编程父进程的阻塞与非阻塞实例分析
- php数组指针函数功能及用法示例
- thinkphp5框架路由原理与用法详解