当前位置: 首页 > news >正文

网站设计就业压力wordpress插件漏洞扫描

网站设计就业压力,wordpress插件漏洞扫描,新华社官网,队徽logo在线设计1、概述 我们在前面介绍的ROS#xff0c;都是ROS1的版本#xff0c;近期对机器狗进行学习的时候#xff0c;发现版本是ROS2了#xff0c;也发现平时习惯的一些命令都有了变化#xff0c;改变还是挺大的#xff0c;不过熟悉之后还是很习惯ROS2的写法。 ROS2不是在ROS1的基…1、概述 我们在前面介绍的ROS都是ROS1的版本近期对机器狗进行学习的时候发现版本是ROS2了也发现平时习惯的一些命令都有了变化改变还是挺大的不过熟悉之后还是很习惯ROS2的写法。 ROS2不是在ROS1的基础上做的更新而是重新构建的这样避免ROS1的设计的很多不规范尤其是在实时性安全性等方面都满足不了现代工作的需求而做一些底层修改又可能造成ROS1的不稳定所以算是全新架构了。底层是用C语言编写叫做RCL库(ROS客户端库Client Library是一种API提供ROS话题、服务、动作、参数等接口)在写上层程序中调用的rclcpp和rclpy是在RCL库上进行一次包装这样带来的好处是让C(默认使用cpp 11 cpp1A4cpp17标准比ROS1默认使用的cpp98标准更加现代化的)和Python(这里放弃了Python2直接使用的是Python3)程序调用API更加统一相似同时对ROS2进行功能更新时直接更新RCL库再新增C和Python的支持。 虽然launch启动文件还是支持不过在ROS2中建议使用Python文件写launch文件更加的灵活。 2、历史版本  我们先来看下ROS1有哪些历史版本  Ubuntu版本    ros版本 Ubuntu 20.04    noetic Ubuntu18.04    melodic Ubuntu16.04    kinetic Ubuntu14.04    indigo 这个跟Ubuntu的版本对应着到了ROS2的时候基本每年都有新的版本发布ROS2的历史版本列表 Crystal: 2018年12月 Dashing: 2019年5月 Eloquent: 2019年11月 Foxy: 2020年6月 Galactic: 2021年5月  本人的Ubuntu版本信息lsb_release -a  No LSB modules are available. Distributor ID:    Ubuntu Description:    Ubuntu 20.04.4 LTS Release:    20.04Codename:    focal  其余命令还有cat /etc/issue 或者cat /etc/os-release或者cat /proc/version  比如本人的ROS2版本rosversion -dfoxy 或者rosversion --distrofoxy  3、命令变化  命令也改变了基本是将ros1中的rosxxx拆分成了ros2 xxx的形式比如 rosrun 变成了 ros2 run当然我们可以通过双击tab键来看提示是最好的这个也是多次推荐的做法如下图  可以看到这样的命令个人感觉更合理了每个单词都有其实际意义了更加直观。  我们来运行一个节点Demo看下效果一个发布节点和一个订阅节点 ros2 run demo_nodes_cpp talker ros2 run demo_nodes_py listener 截图如下 这里运行上述两个节点之前我并没有运行roscore可以看到两个节点可以互相进行通信了也就是说ROS2的去中心化设计让其适应更多工业应用和产品级应用场景的需求。 ROS1和ROS2可以并存于同⼀台电脑,你只需要source其对应的setup.bash即可完成环境的选择。 其余一些常见命令的变化如下 编译指令从 catkin_make 更改为 colcon build rosrun rqt_graph rqt_graph 更改为 rqt_graphrosrun rqt_tf_tree rqt_tf_tree 更改为 ros2 run tf2_tools view_frames.pyrviz 更改为 rviz2 4、全新安装 本人安装环境lsb_release -a  No LSB modules are available. Distributor ID:    Ubuntu Description:    Ubuntu 18.04.6 LTS Release:    18.04Codename:    bionic  前面铺垫了一些ROS1到ROS2的部分变化接下来我们来安装一个全新的ROS2这样就会更加快速的熟悉它。 4.1、安装ROS2 首先更新软件库 sudo apt update sudo apt upgrade 安装ROS2推荐安装完整版 sudo apt install ros-foxy-desktop 如果不想安装完整版本可以只安装核心软件包sudo apt install ros-foxy-ros-base 不出意外的出了意外报错如下 E: Unable to locate package ros-foxy-desktop 所以需要指定软件安装源来安装 sudo apt update sudo apt install curl gnupg2 lsb-release curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo sh -c echo deb [arch$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main /etc/apt/sources.list.d/ros2-latest.list 这里可以写死也可以获取变量值的写法 dpkg --print-architecture 本机amd64 lsb_release -c 可以给出自身的版本本机 Codename:    bionic 写入之后我们查看下源内容cat /etc/apt/sources.list.d/ros2-latest.list deb [archamd64,arm64] http://packages.ros.org/ros2/ubuntu bionic main 然后再次更新sudo apt update 这里的Ubuntu18版本好像不能安装foxy网上却很多安装成功的这个暂时存疑因为我也觉得这个ROS2应该跟Ubuntu版本没有对应关系了那我们安装Dashing来体验下 sudo apt install ros-dashing-desktop 安装好了之后配置环境追加到 ~/.bashrc这样不需要每次source echo source /opt/ros/dashing/setup.bash ~/.bashrc 由于本人在之前也安装了ROS1所以我们在这里可以写一个判断~/.bashrc文件追加如下内容 echo ROS melodic (1) or ROS2 dashing (2)? read edition if [ $edition -eq 1 ];thensource /opt/ros/melodic/setup.bashecho using ros melodic elsesource /opt/ros/dashing/setup.bashecho using ros2 dashing fi 这样就会在开启终端时选择ROS1还是ROS2输入1表示启动ROS1输入2表示启动ROS2 如果启动ROS2时出现下面警告 ROS_DISTRO was set to melodic before. Please make sure that the environment does not mix paths from different distributions. 翻译过来是之前将ROS_DISTRO设置为“melodic”。请确保环境没有混合来自不同发行版的路径。 就将.bashrc里面的/opt/ros/melodic/setup.bash注释掉即可。  如果双击tab键没有给出提示需安装命令补全包sudo apt install python3-argcomplete  然后测试下分别输入  ros2 run demo_nodes_cpp talker ros2 run demo_nodes_py listener ROS2安装之后测试没问题如下图 一些常见的开发需要的包自行按需选择安装  sudo apt install ros-dashing-turtlesim sudo apt install ros-dashing-xacro sudo apt install python3-pip sudo apt install python3-colcon-common-extensions sudo apt install python3-vcstool sudo apt-get install ros-dashing-joint-state-publisher-gui#卸载ROS2 sudo apt remove ros-dashing-* sudo apt autoremove 4.2、安装Gazebo Gazebo是一个强大的仿真平台平时用的比较多安装如下  sudo apt install ros-dashing-gazebo-ros-pkgs 导航相关的包 sudo apt install ros-dashing-cartographer sudo apt install ros-dashing-cartographer-ros sudo apt install ros-dashing-navigation2 sudo apt install ros-dashing-nav2-bringup sudo apt install ros-dashing-gazebo-ros2-control sudo apt install ros-dashing-ros2-control ros-dashing-ros2-controllers 4.3、编译 编译的过程相比ROS1在ROS2中也发生了很大的改变未来随着ROS1的慢慢淘汰我们还是重点掌握ROS2的用法即可创建工作空间 mkdir -p ~/myRobotDog_ws/src cd ~/myRobotDog_ws/src 创建包(这里跟ROS1不一样) ros2 pkg create --build-type ament_cmake mypkg --node-name mynode 同样会在mypkg这个包下面生成以下目录与文件 CMakeLists.txt  include  package.xml  src 然后我们来看下节点mynode在src里的一个c文件gedit mynode.cpp #include cstdioint main(int argc, char ** argv) {(void) argc;(void) argv;printf(hello world mypkg package\n);return 0; } 接下来就是编译在编译之前确保已安装colcon编译器 ​​​​​​​sudo apt install python3-colcon-common-extensions cd ~/myRobotDog_ws colcon build --symlink-install echo source ~/myRobotDog_ws/install/setup.bash ~/.bashrc 然后测试下 ros2 run mypkg mynode #hello world mypkg package 如果想增加节点修改CMakeLists.txt文件即可 cd ~/myRobotDog_ws/src/mypkg gedit CMakeLists.txt 新增即可: add_executable(mynode src/mynode.cpp) target_include_directories(mynode PUBLIC$BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include$INSTALL_INTERFACE:include)install(TARGETS mynodeDESTINATION lib/${PROJECT_NAME}) colcon的一些常用参数 --symlink-install使用符号链接比如动态链接库会在install目录中使用符号链接指向build目录下生成的库文件(如 *.so)如果没有该选项则两个目录都有该库文件。--packages-select只编译指定包比如单独编译mypkg包colcon build --packages-select mypkg--packages-ignore 忽略指定包用法同上--continue-on-error编译出错继续编译其他模块--cmake-args --ament-cmake-args --catkin-cmake-args 传递参数给对应的package 最后需要注意的ROS2在修改完任何文件后需要重新编译 colcon build  更多详情可以查阅https://docs.ros.org/en/dashing/Installation/Ubuntu-Install-Debians.html  5、编译Python  对于Python的编译有好几个点需要注意以及一些配置文件的修改 mkdir -p ~/mypy_ws/src cd ~/mypy_ws/src ros2 pkg create --build-type ament_python my_py cd ~/mypy_ws/src/my_py/my_py touch PYNode.py gedit PYNode.py #!/usr/bin/env python3import rclpy from rclpy.node import Nodedef main(argsNone):rclpy.init(argsargs)node Node(ChyiChin_Node)node.get_logger().info(Python TEST)rclpy.spin(node)rclpy.shutdown()if __name__ __main__:main() 加个可执行权限chmod x PYNode.py cd ~/mypy_ws colcon build --packages-select my_py source install/setup.bash 运行ChyiChin_Node节点看下能否正确输出日志信息 ros2 run my_py ChyiChin_Node [INFO] [ChyiChin_Node]: Python TEST OK没有问题对C和Python的编译就这么愉快的搞定了。接下来将贴出在编译过程中遇到的一些错误以及处理的方法 6、编译出错 6.1、setup.cfg Usage of dash-separated script-dir will not be supported in future version 短横线在未来版本不再支持所以我们需要修改为下划线的形式 cd ~/mypy_ws/src/my_py gedit setup.cfg 将里面的script-dir和install-scripts修改为script_dir和install_scripts 6.2、Setuptools版本 SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.   setuptools.SetuptoolsDeprecationWarning, 查看下setuptools的版本 python3import setuptools print(setuptools.__version__) 59.6.0 版本太新了安装低版本的就可以了 pip3 install setuptools58.2.0 -i http://pypi.douban.com/simple/  --trusted-host pypi.douban.com 6.3、No executable found ros2在运行python文件时会报错No executable found  在前面的mypkg包里面可以查询到所有可执行程序ros2 pkg executables mypkg mypkg mynode mypkg mynode1  然后在Python里面的my_py包查询是空的ros2 pkg executables my_py  解决方案在编译之前需要修改setup.py告知入口点位置也就是Python文件的路径  cd ~/mypy_ws/src/my_py gedit setup.pyentry_points{console_scripts: [ChyiChin_Nodemy_py.PYNode:main],}, 其中ChyiChin_Node为节点名称my_py.PYNode为Python文件路径(包名.文件名)加:main入口函数 6.4、RuntimeError RuntimeError: distutils.core.setup() was never called -- perhaps setup.py is not a Distutils setup script?  翻译过来是RuntimeError: Distutils .core.setup()从未被调用-也许setup.py不是Distutils安装脚本? 这个属于运行时错误所以需要一个rclpy的依赖所以在创建包的时候这样写即可ros2 pkg create my_py --build-type ament_python --dependencies rclpy 最后来看下运行Python写的这个节点 ros2 run my_pkg ChyiChin_Node 截图如下 7、小结 ROS2的出现让ROS真正成为了去中心化的分布式的操作系统这个是其最主要的特点因为在ROS1中我们知道需要首先启动roscore也就是MASTER管理节点如果这个节点崩了那整个ROS系统都崩了这是一种不好的设计。 另外引入了数据分发服务通信协议(DDS)使用零拷贝的方式来传递消息这大大节省了内存和传输所占用的资源提高了通信的实时性。
http://www.dnsts.com.cn/news/79941.html

相关文章:

  • 网做英文网站建设银行办信用卡网站
  • 免费html5网站模板怎样手机微信登陆网站
  • 网站开发多久完成网站开发的方案
  • 第五次普查数据自网站怎么做公司软件管理软件
  • 网站设计编辑响应式网站管理
  • 杭州网站建设公司有哪些建设银行国际互联网站
  • 网站后台模板关联自己做的网站企业网站内容运营
  • 洛阳天艺网络做网站怎么样重庆建设工程信息网官网查询系统官网
  • 多用户商城系统网站建设网站开发语言数据库有几种
  • wordpress 建站教程手机网站开发解决方案
  • 网站备案值得吗许昌网站建设费用
  • 后缀是.cc的网站百度统计手机版
  • 建站工具帝国ps制作网站产品图片
  • 做网站需要多长时间才能做好浏览器网页版入口
  • 网站面包屑导航设计即位置导航购物网站备案
  • SOHO英文网站制作乌兰察布市建设局网站
  • 网站颜色正确搭配实例wordpress 5.2.2
  • 黄山网站设计公司做网站的首页下拉列表
  • 成都网站建设 Vr为什么网站开发需要写php
  • 阳网站建设怎样拍照产品做网站
  • 网页制作建立站点电脑网页打不开是什么原因
  • 天津网站开发平台水果网页设计模板图片
  • 武安做网站建网站 开发app
  • 网站建设 经验温州网站外包
  • 网站服务器价格表创网站 灵感
  • 济南网站设计公司推荐百度网页安全警告怎么解除
  • 如何用服务器代替空间做网站富平网站建设
  • 找工程做在哪个网站?广州佛山旅居人员
  • 科技部网站建设合同中国中铁建设集团门户网
  • 外贸soho通过网站开发客户天津网站建设定制公司