带有可旋转摄像头的移动小车(urdf+rviz)

带有,旋转,摄像头,移动,小车,urdf,rviz · 浏览次数 : 61

小编点评

**博客文章摘要** 文章介绍如何在 ROS 中创建和运行一个名为 `camera_car_footprint` 的工作空间,并设置其参数。 **步骤:** 1. 创建工作空间 `catkin_wsource ./devel/setup.bashroslaunch urdf01_rviz camera_car_footprint.launchrviz` 2. 启动工作空间 3. 配置机器人参数 4. 启动 `camera_car_footprint` 工作空间 5. 添加模型设置 6. 保存模型 7. 启动 GUI

正文

博客地址:https://www.cnblogs.com/zylyehuo/

成果图

step1:新建工作空间

mkdir -p catkin_ws/src
cd catkin_ws
catkin_make

step2:建立工作包

右键src,选择 Create Catkin Package

输入包名之后,点击回车
依次写入配置:urdf xacro

step3: 创建要用的文件夹

在urdf01_rviz文件夹下依次创建config、launch、meshes、urdf文件夹
在urdf文件夹下再创建一个urdf文件夹(保证结构的可读性)

step4:下载meshes文件夹下需要的文件

终端输入:
git clone https://github.com/zx595306686/sim_demo.git

得到以下文件

将前两个文件复制到创建的meshes文件夹下

step5:src/urdf01_rviz/urdf/urdf/camera_car_footprint.urdf

<robot name="mycar">

    <link name="base_footprint">
        <visual>
            <geometry>
                <box size="0.001 0.001 0.001" />
            </geometry>
        </visual>
    </link>

    <link name="base_link">
        <visual>
            <geometry>
                <mesh filename="package://urdf01_rviz/meshes/autolabor_mini.stl"/>
            </geometry>
            <origin xyz="0 0 0" rpy="1.57 0 1.57" />
            <material name="base_color">
                <color rgba="1 0.5 0 1" />
            </material>
        </visual>
    </link>


    <link name="camera">
        <visual>
            <geometry>
                <box size="0.02 0.05 0.05" />
            </geometry>
            <origin xyz="0 0 0" rpy="0 0 0" />
            <material name="camera_color">
                <color rgba="1 0.4 0.2 1" />
            </material>
        </visual>
    </link>

    <joint name="base_link2base_footprint" type="fixed">
        <parent link="base_footprint"/>
        <child link="base_link" />
        <origin xyz="0 0 0.05" rpy="0 0 0" />
    </joint>

    <joint name="camera2baselink" type="continuous">
        <parent link="base_link"/>
        <child link="camera" />

        <origin xyz="0.11 0 0.115" rpy="0 0 0" />
        <axis xyz="0 0 1" />
    </joint>

</robot>

step6:src/urdf01_rviz/launch/camera_car_footprint.launch

<launch>

    <!-- 在参数服务器载入 urdf 文件  -->
    <!-- 设置参数 -->
    <param name="robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/camera_car_footprint.urdf" />

    <!-- 启动 rviz -->
    <node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz" />

    <!-- 添加关节状态发布节点(出现转速过快现象进行注释) -->
    <!-- <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" /> -->
    <!-- 添加机器人状态发布节点 -->
    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
    <!-- 可选:用于控制关节运动的节点 -->
    <node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" />

</launch>

step7:在终端启动launch文件

cd catkin_ws
source ./devel/setup.bash
roslaunch urdf01_rviz camera_car_footprint.launch

rviz启动后,需要先add模型

设置joint参考的parent

step8:保存模型

保存模型至创建的config文件夹下
可取名为show_mycar.rviz

常见问题汇总

1、没有安装rviz

如果rviz没有安装,请调用如下命令自行安装:
sudo apt install ros-[ROS_DISTRO]-rviz

2、没有安装gazebo

1.添加源:
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" 
>
 /etc/apt/sources.list.d/gazebo-stable.list'

wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
2.安装:
sudo apt update

sudo apt install gazebo11 
sudo apt install libgazebo11-dev

3、命令行输出UnicodeEncodeError错误提示

UnicodeEncodeError: 'ascii' codec can't encode characters in position 463-464: ordinal not in range(128)
[joint_state_publisher-3] process has died [pid 4443, exit code 1, cmd /opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher __name:=joint_state_publisher __log:=/home/rosmelodic/.ros/log/b38967c0-0acb-11eb-aee3-0800278ee10c/joint_state_publisher-3.log].
log file: /home/rosmelodic/.ros/log/b38967c0-0acb-11eb-aee3-0800278ee10c/joint_state_publisher-3*.log

rviz中提示坐标变换异常,导致机器人部件显示结构异常
原因:编码问题导致的
解决:去除URDF中的中文注释

4、命令行输出joint_state_publisher_gui错误提示

[ERROR] [1584370263.037038]: Could not find the GUI, install the 'joint_state_publisher_gui' package
终端执行安装指令:
sudo apt install ros-noetic-joint-state-publisher-gui

5、无法安全地用该源进行更新,所以默认禁用该源 E: 无法定位软件包

我们安装软件的时候经常会出现无法安全地用该源进行更新,所以默认禁用该源 以及 E: 无法定位软件包
依次在终端执行以下指令:
sudo apt install ros-noetic-gmapping

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

sudo apt update

sudo apt-get install ros-melodic-joint-state-publisher-gui

与带有可旋转摄像头的移动小车(urdf+rviz)相似的内容:

带有可旋转摄像头的移动小车(urdf+rviz)

博客地址:https://www.cnblogs.com/zylyehuo/ 成果图 step1:新建工作空间 mkdir -p catkin_ws/src cd catkin_ws catkin_make step2:建立工作包 右键src,选择 Create Catkin Package 输入包

[转帖]Elasticsearch 的 30 个调优最佳实践!

Elasticsearch 的 30 个调优最佳实践! https://zhuanlan.zhihu.com/p/406264041 ES 发布时带有的默认值,可为 es 的开箱即用带来很好的体验。全文搜索、高亮、聚合、索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用 es 后,你

在System身份运行的.NET程序中以指定的用户身份启动可交互式进程

今天在技术群里,石头哥向大家提了个问题:"如何在一个以System身份运行的.NET程序(Windows Services)中,以其它活动的用户身份启动可交互式进程(桌面应用程序、控制台程序、等带有UI和交互式体验的程序)"? 我以前有过类似的需求,是在GitLab流水线中运行带有UI的自动化测试程

[转帖]SystemStap、BCC、bpftrace

https://plantegg.github.io/2019/09/16/SystemStap/ Linux 4.4+ 支持 eBPF。基于 eBPF 可以将任何内核函数调用转换成可带任何 数据的用户空间事件。bcc 作为一个更上层的工具使这个过程更加方便。内核探测 代码用 C 写,数据处理代码用

【Playwright+Python】手把手带你写一个自动化测试脚本

​ 如何使用代理方式打开网页 在 playwright.chromium.launch() 中传入 proxy 参数即可,示例代码如下: 1、同步写法: 1 from playwright.sync_api import sync_playwright 2 3 proxy = {'server': 

可以把 FolkMQ 内嵌到 SpringBoot3 项目里(可内嵌的消息中间件,纯血国产)

支持Qos0、定时、过期、顺序、广播、事务、二进制等消息特性。有确认、重试、延时等机制。可嵌入、单机、集群等部署。

带约束条件的运筹规划问题求解(模拟退火算法实现)

使用模拟退火解带约束条件的运筹优化问题,可线性也可非线性。

中证1000期指上市带来的交易机会

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 中证1000指数特征 近期,中金所新上市了中证1000指数的股指期货以及期权,自此,国内的期指共有4个交易标的(上证50、沪深300、中证500、中证1000)可供选择。研究新上市的中证1000期指标的,

使用Blazor WASM实现可取消的多文件带校验并发分片上传

前言 上传大文件时,原始HTTP文件上传功能可能会影响使用体验,此时使用分片上传功能可以有效避免原始上传的弊端。由于分片上传不是HTTP标准的一部分,所以只能自行开发相互配合的服务端和客户端。文件分片上传在许多情况时都拥有很多好处,除非已知需要上传的文件一定非常小。分片上传可以对上传的文件进行快速分

带你了解关于FastAPI快速开发Web API项目中的模板和Jinja

摘要:FastAPI 实际上是为构建 API 和微服务而设计的。它可用于构建使用 Jinja 提供 HTML 服务的 Web 应用程序。 本文分享自华为云社区《FastAPI 快速开发 Web API 项目: 模板和 Jinja 介绍》,作者:宇宙之一粟。 什么是 Jinja 模板是全栈 Web 开