导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    1. 主页
    2. weijiz
    3. 帖子
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision
    • 资料
    • 关注 0
    • 粉丝 11
    • 主题 248
    • 帖子 705
    • 最佳 11
    • 群组 1

    weijiz 发布的帖子

    • RE: 小强机器人电池相关问题

      @gohan 请联系淘宝寄回返修

      发布在 产品服务
      weijiz
      weijiz
    • RE: 小强机器人电池相关问题

      @gohan 什么时候的机器,不行可以联系淘宝返修

      发布在 产品服务
      weijiz
      weijiz
    • RE: 小强机器人电池相关问题

      @gohan 主机拆下, 然后卸掉主机底板螺丝,侧面不用动。主机的螺丝在驱动器后面,要先卸驱动器

      发布在 产品服务
      weijiz
      weijiz
    • RE: 小强机器人电池相关问题

      @gohan 是的

      发布在 产品服务
      weijiz
      weijiz
    • RE: 小强机器人电池相关问题

      @gohan 重新插一下内存条,如果还有问题就只插一个内存条试试。一般这种都是内存问题

      发布在 产品服务
      weijiz
      weijiz
    • RE: 小强机器人电池相关问题

      @gohan 可以,注意正负极。不过如果只是要12v输出,直接在自带的12v那里并出一根线应该更简单

      发布在 产品服务
      weijiz
      weijiz
    • RE: 小强机器人电池相关问题

      @gohan 可以输出,你的这台是XQ5, 是36V锂电池,电压范围36V-41V

      发布在 产品服务
      weijiz
      weijiz
    • ROS2如何设置和获取其他节点的参数

      在ROS1中参数全部都在一个Parameter Server上面,任意节点都可以随意的设置和读取其他节点的参数。但是在ROS2中,这部分发生了很大变化。首先由于ROS2没有了中心节点,所以也不存在一个Parameter Server了。每个节点的参数由节点本身去维护。所以要设置或获取其他节点的参数就要用调用服务的方法去调用其他节点设置参数,获取参数服务。下面是一个具体的例子

      单个节点获取和设置自己的参数

      import rclpy
      node = None
      
      def get_params():
          global node
          node.get_logger().info(node.get_parameter("test").get_parameter_value().string_value)
      
      
      def main():
          global node
          rclpy.init()
          node = rclpy.create_node("get_params_node")
          # 声明参数,所有参数在使用之前都要声明一下
          node.declare_parameter("test", "default")
          # 设置参数
          node.set_parameters([rclpy.Parameter("test", rclpy.Parameter.Type.STRING, "hello world")])
          node.create_timer(1, get_params)
          rclpy.spin(node)
      
      if __name__ == "__main__":
          main()
          
      

      正常运行后输出如下

      [INFO] [1677133156.500033082] [get_params_node]: hello world
      [INFO] [1677133157.492551064] [get_params_node]: hello world
      [INFO] [1677133158.492387209] [get_params_node]: hello world
      [INFO] [1677133159.492404149] [get_params_node]: hello world
      [INFO] [1677133160.492420371] [get_params_node]: hello world
      

      设置其他节点的参数

      import rclpy
      from rcl_interfaces.srv import SetParameters
      from rcl_interfaces.msg import Parameter, ParameterValue, ParameterType
      
      index = 0
      set_params = None
      
      def get_params():
          global set_params, index
          index += 1
          # 创建设置参数请求
          req = SetParameters.Request()
          # 设置参数数据
          req.parameters = [Parameter(name="test", value=ParameterValue(string_value=f"{index}",type=ParameterType.PARAMETER_STRING))]
          # 发送请求
          set_params.call_async(req)
      
      def main():
          global set_params
          rclpy.init()
          node = rclpy.create_node("set_params_node")
          # 创建设置参数服务客户端
          set_params = node.create_client(SetParameters, "/get_params_node/set_parameters")
          # 等待服务
          set_params.wait_for_service(1)
          node.create_timer(1, get_params)
          rclpy.spin(node)
      
      if __name__ == "__main__":
          main()
          
      

      总结

      可以看到设置其他节点的参数相对于ROS1要复杂了很多。在ROS2的设计文档中提到了要做一个类似参数服务器的东西。但是目前这个东西还没有实现。

      发布在 ROS教程
      weijiz
      weijiz
    • Python setup.py 和 entry_points 详解

      由于ROS2中的python包多了setup.py, setup.cfg文件。所以在开发ROS2的软件有必要详细了解一下这些文件的作用。简而言之就是python的打包配置文件,类似package.xml和CMakeList.txt的作用。

      Python打包:setuptools 与 setup.py/.cfg 入门简介

      https://zhuanlan.zhihu.com/p/261579357

      Python setup.py entry_points 详解

      https://zhuanlan.zhihu.com/p/261579357

      这两篇文章介绍的都十分直接。尤其第二篇对于entry_points的解释详细且直观。

      发布在 技术交流
      weijiz
      weijiz
    • ros2 中的 time消息类型

      在ROS1中默认的消息类型中有time,用于表示时间信息。比如std_msgs/Header里面用于表示时间的就是这个类型。但是如果在ROS2中直接使用这个类型会报错误。因为ROS2的默认类型类型中取消了这个类型。要替换成下面的形式

      ROS1中表示

      time stamp
      

      ROS2中表示

      builtin_interfaces/Time stamp
      
      发布在 ROS教程
      weijiz
      weijiz
    • Ubuntu 22.04 ROS2 humble安装

      添加源和秘钥

      sudo apt install software-properties-common
      sudo add-apt-repository universe
      sudo apt update && sudo apt install curl
      sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
      echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
      

      安装软件包

      下面用apt-fast 安装,apt-fast的安装方法参考这里

      sudo apt update
      sudo apt-fast upgrade
      sudo apt-fast install ros-humble-desktop ros-dev-tools -y
      

      设置环境变量

      在你的bashrc里面添加下面的内容

      source /opt/ros/humble/setup.bash
      source /home/randoms/Documents/ros2/install/setup.bash # 这里要改成自己的工作空间
      export ROS_LOCALHOST_ONLY=1 # 这里让话题只在本地发布,为了安全性
      export ROS_DOMAIN_ID=0 # 这里设置自己的Domain,注意数值范围0-101而且数值越大则最大node进程数越少。
      source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash # 开启colcon的自动补全
      

      降级setuptools

      22.04的setuptools版本过高,默认版本会在colcon build python包的时候产生各种warning

      pip install setuptools==58.2.0
      

      注意安装环境不能使用conda,否则会出现 python 各种import错误

      发布在 ROS教程
      weijiz
      weijiz
    • 22.04使能远程桌面,替代VNC

      在之前版本的Ubuntu中系统自带的远程桌面一直不太好用,22.04由于采用了Wayland作为显示服务器,之前VNC作为远程桌面的方法反而不太好用了。还好这次系统自带的远程桌面功能好用了。我们可以用自带的远程桌面替代VNC。下面是开启方法。

      打开设置,选择共享

      7b688774-0858-490c-bd1f-95272daa2944-image.png

      选择远程桌面

      bcd0c47d-eb54-4ca8-be69-1908295e60e7-image.png

      使能远程桌面,设置好用户名密码就可以了。

      连接采用windows自带的远程桌面连接程序

      057c7a85-4e8d-43e7-8f91-6f4421ceaeb1-image.png

      实测连接响应速度挺不错。但是没办法在没有插显示器的情况下进行连接。

      23cce0e8-f63e-452e-8821-9092290053df-image.png

      发布在 技术交流
      weijiz
      weijiz
    • RE: 请问如何利用Gazebo进行仿真

      这个是sim机器的启动文件,启动后话题和正常机器人一样
      https://git.bwbot.org/publish/startup/-/blob/xq4-noetic-sim/launch/startup_sim.launch

      发布在 技术交流
      weijiz
      weijiz
    • RE: 如何将自定义的额外功能和伽利略系统对接

      @mrtk 在 如何将自定义的额外功能和伽利略系统对接 中说:

      判断的功能呢

      如果自己调的话完全可以再检测到io数据之后再掉导航的API

      而且不应该修改galileo_api的内容,应该自己创建一个包然后调API实现对应动作

      发布在 技术交流
      weijiz
      weijiz
    • RE: 蓝鲸ROS镜像发布

      @mrtk xq4 pro 和xq5通用版本:xiaoqiang-noetic_2021-11-12.iso

      https://bwbot.org/s/vBesAD

      发布在 产品服务
      weijiz
      weijiz
    • ubuntu录音开启噪声抑制

      Ubuntu有时录音底噪非常大,有很多电流声。这个问题可以通过开启噪声抑制解决。

      开启方法

      修改 /etc/pulse/default.pa 文件,增加以下内容

      load-module module-echo-cancel aec_args="analog_gain_control=0 digital_gain_control=0" source_name=logitechsource
      set-default-source logitechsource
      

      重启pulseaudio

      pulseaudio -k
      

      在声音设置界面选择带噪声抑制的音频输入

      Screenshot from 2022-12-29 11-21-15.png

      发布在 技术交流
      weijiz
      weijiz
    • modelscope环境安装

      modelscope是阿里出的深度学习平台。里面有很多很有用的模型,比如其中的语音识别功能,经过测试效果非常好。能够达到商用级别。官方的环境安装文档有问题。下面是我自己摸索的安装过程。

      创建virtualenv

      环境是ubuntu 20.04 默认的python版本为3.8

      virtualenv venv
      

      安装tensorflow-gpu

      source venv/bin/activate
      pip install nvidia-tensorflow==1.15.5+nv22.07 -i https://pypi.tuna.tsinghua.edu.cn/simple
      

      这一步要注意其中的版本,这个版本是和下面torch相冲突比较少的,但是还是有冲突

      安装torch

      pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
      

      安装modelscope相关库

      pip install "modelscope[audio]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html -i https://pypi.tuna.tsinghua.edu.cn/simple
      

      重新安装numpy

      由于numpy版本之间的冲突会导致numpy安装失败,执行下面的指令再次安装

      pip install numpy==1.20.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
      

      至此安装完成可以尝试运行下面的脚本测试是否正确安装

      from modelscope.pipelines import pipeline
      from modelscope.utils.constant import Tasks
      
      inference_16k_pipline = pipeline(
          task=Tasks.auto_speech_recognition,
          model='damo/speech_UniASR-large_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline')
      
      rec_result = inference_16k_pipline(audio_in='https://modelscope.oss-cn-beijing.aliyuncs.com/test/audios/asr_example.wav')
      print(rec_result)
      
      发布在 技术交流
      weijiz
      weijiz
    • RE: 【点云颜色读取问题】sensor_msgs::PointCloud2转换成pcl时如何提取RGB信息?

      @arillia PointCloud2的那个彩色是深度信息吧,不是原始的rgb信息。转换过程中rgb信息丢了就不能在没有色彩信息的情况下还原。

      发布在 技术交流
      weijiz
      weijiz
    • RE: 机器人开机不能自启动

      @mm 重新注册自启动服务 https://doc.bwbot.org/en/books-online/xq-manual/topic/27.html#%E4%B8%89%E3%80%81%E5%B0%86startuplaunch%E6%96%87%E4%BB%B6%E5%9C%A8%E5%B0%8F%E5%BC%BA%E4%B8%BB%E6%9C%BA%E4%B8%AD%E6%B3%A8%E5%86%8C%E4%B8%BAstartup-%E5%BC%80%E6%9C%BA%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1

      也有可能是你的startup.launch有错误。可以先手动启动一下试试

      发布在 讨论区
      weijiz
      weijiz
    • RE: 如何在重装系统后恢复xiaoqiang设置

      @mm 出厂状态

      发布在 产品服务
      weijiz
      weijiz
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 35
    • 36
    • 6 / 36