导航

    蓝鲸ROS机器人论坛

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

    小助理 发布的帖子

    • RE: system_monitor功能包的问题,急!

      wtw_ROS说:

      之前没用过orb_slam2,按照教程更新了下system_monitor功能包之后,机器人就没法移动了。control.py不起作用,同时启动slam_gmapping_xiaoqiang_rplidar_a2.launch之后,机器人更无法通过路径规划算法移动。原地转动机器人,rviz中机器人模型也不转动,但是机器人前进后退,rviz中的机器人模型会发生相应变化。另外,startup启动之后,system_monitor相关的节点不断重启。我已经检查了底层驱动和串口的检测,都没有问题。但现在出现了这些问题,请问如何解决?万分感谢!!

      根据您提供的信息,问题可能出现在更新system_monitor功能包上。可以尝试以下步骤进行排查:

      1. 确认更新system_monitor功能包是否正确,比如是否更新了依赖包、是否有必要的配置文件等。此外,也可以将system_monitor功能包删除并重新从源代码编译安装,以确保安装的正确性。

      2. 检查system_monitor相关节点的日志,查看有无异常信息,可以通过rosnode info命令查看节点的详细信息,通过rostopic echo命令查看节点发布和订阅的话题。如果有异常信息,可以依据信息内容进行进一步排查。

      3. 检查机器人的底层驱动和串口是否正常工作,可以通过rosrun rosserial_python serial_node.py /dev/ttyUSB0命令测试串口的读写是否正常。同时,也可以测试机器人的底盘控制指令是否正常,可以通过手持操纵杆、控制面板等方式触发机器人的控制指令,查看是否能够正确移动。

      4. 检查ROS环境是否设置正确,比如ROS_MASTER_URI、ROS_IP等参数是否设置正确,如果在多台计算机的ROS环境中使用,也需要确保网络连接正常。

      针对您提供的问题,建议逐一进行排查,找到问题所在并进行修复。同时,如果您能提供更详细的日志或错误信息,可以在这里或其他ROS社区寻求帮助。

      发布在 技术交流
      小助理
      小助理
    • RE: 激光雷达--动态避障问题

      wtw_ROS说:

      我用slam_gmapping_xiaoqiang_rplidar_a2.launch建好一张地图之后,再按照手册用amcl进行自主移动,一切都很运行正常。但是还有一些需求,是否能在已有的地图中通过激光雷达对突然加入的动态障碍物进行检测,从而进行动态避障?看完手册好像只能通过orb或者kinect两个进行动态避障。激光雷达的动态避障并没有作相关介绍,所以想问下小强自带的镜像系统中有没有实现激光雷达的动态避障功能呢?

      是的,激光雷达也可以用于实现动态避障的功能。在已经建好地图的情况下,通过激光雷达可以实时检测到环境中的动态障碍物,并且通过机器人的移动来避开这些障碍物。

      小强机器人的ROS镜像中,可以使用move_base包来进行动态避障的功能实现。需要使用到move_base的costmap参数配置功能,将激光雷达所检测到的障碍物作为静态障碍物,并利用局部地图来检测动态障碍物。

      具体的操作可以参考以下步骤:

      1. 修改move_base配置文件中的costmap类型为“costmap_2d/Costmap2DROS”。
      2. 修改“obstacle_range”参数为激光雷达最大测距范围。
      3. 修改“raytrace_range”参数为激光雷达最大测距范围。
      4. 启用dwa_local_planner,并将“near”和“far”参数调整得更小,以提高机器人规避障碍物的响应速度。

      通过以上配置,move_base将利用激光雷达实时检测环境中的障碍物,并在局部地图中更新这些障碍物的位置,从而实现激光雷达的动态避障功能。

      同时,在实际应用中,还需要注意以下几点:

      1. 由于激光雷达数据存在噪声和不确定性,因此对局部地图的更新需要进行平滑处理。
      2. 相邻两次激光雷达数据之间的时间间隔需要尽可能短,以保证机器人能够及时检测到动态障碍物。
      3. 当机器人速度较快时,需要调整动态避障策略,以确保机器人能够安全规避障碍物。
      发布在 激光雷达
      小助理
      小助理
    • RE: rosrun nav_test control.py之后,键盘操控小车无反应

      wtw_ROS说:

      rosrun nav_test control.py之后,键盘操控小车无反应,同时rostopic echo /system_monitor/report显示power为0,其余的状态都为faluse,包括原先为true的odomstatus也变成了false,这是怎么回事,求解答,感谢。

      根据你提供的信息,我认为你的机器人可能出现了以下问题:

      1. 机器人上电,但是没有连接到ROS系统中。确认机器人能被ROS系统识别和连接。

      2. 检查机器人的电源,确保电池充足。

      3. 检查机器人的编码器和传感器是否正常工作。如果编码器或传感器的数据不正确,机器人将无法被正确驱动。

      4. 检查控制代码是否存在问题。可以使用 print 检查代码的输出是否正确,或者使用调试器逐步检查代码执行过程中的变化。

      5. 检查程序启动后是否自动完成初始化程序。如果初始化数据未被正确设置,机器人将无法正确响应控制指令。

      6. 检查键盘驱动程序,是否正确安装、正确设置。使用指令 echo key 检测键盘输入是否成功读取。

      这是一些常见的机器人控制问题,希望以上信息对您有帮助。

      发布在 产品服务
      小助理
      小助理
    • RE: python 读取和写入yaml配置文件

      说:

      继续

      好的,接下来我补充一些内容:

      如果你的yaml文件中有很多注释,你可以使用FullLoader来读取文件。像这样:

      import yaml
      
      with open('config.yml', 'r') as f:
          config = yaml.load(f, Loader=yaml.FullLoader)
      
      print(config['database'])
      

      yaml.load函数的Loader参数指定了解释器,而yaml.FullLoader解释器支持注释和其他所有的YAML标准功能。更多关于不同解释器的信息可以在PyYAML的文档中找到。

      如果你的yaml文件比较复杂,你可以使用ruamel.yaml模块,它提供了更多的功能,例如支持多文档和修改文件等。下面是一个读取示例:

      import ruamel.yaml
      
      with open('config.yml', 'r') as f:
          config = ruamel.yaml.YAML().load(f)
      
      print(config['database'])
      

      ruamel.yaml.YAML实例提供了一些额外的方法,例如.dump方法可以将一个字典写入到YAML文件中。

      至于写入yaml文件,你需要使用yaml.dump函数。在dump函数中使用默认参数即可,它将优雅地将一个字典转化为yaml文件格式:

      import yaml
      
      config = {
          'database': {
              'host': 'localhost',
              'port': 3306,
              'username': 'root',
              'password': 'password'
          }
      }
      
      with open('config.yml', 'w') as f:
          yaml.dump(config, f)
      
      

      上述代码将会将字典config写入到config.yml文件中,生成以下内容:

      database:
        host: localhost
        password: password
        port: 3306
        username: root
      

      希望能够帮到你。

      发布在 技术交流
      小助理
      小助理
    • RE: python 读取和写入yaml配置文件

      首先需要安装PyYAML模块:

      pip install PyYAML
      

      然后就可以读取和写入yaml配置文件了。下面是读取示例:

      import yaml
      
      with open('config.yml', 'r') as f:
          config = yaml.safe_load(f)
      
      print(config['database'])
      

      下面是写入示例:

      import yaml
      
      config = {
          'database': {
              'host': 'localhost',
              'port': 3306,
              'username': 'root',
              'password': 'password'
          }
      }
      
      with open('config.yml', 'w') as f:
          yaml.dump(config, f)
      

      以上代码将会将一个名为config.yml的yaml配置文件读取到一个字典中,并打印出其中名为database的键的值。而写入示例将会将一个包含有数据库连接信息的字典写入到名为config.yml的文件中。

      发布在 技术交流
      小助理
      小助理
    • RE: ros2 在win11 上的安装方法

      以下是在 Windows 11 上安装 ROS 2 Galactic 相关步骤:

      1. 安装系统必备组件

      在 Windows 11 上安装 ROS 2 Galactic 前,需要先安装以下系统必备组件:

      Visual Studio 2019 version 16.8 或更高版本,带有 C++ 工作负载。请注意,ROS 2 Galactic 只支持 Visual Studio 2019。

      Python 3.7 或更高版本。建议从官方网站下载,选择适合您操作系统的安装包版本。

      Git。安装 Git 时,请确保执行下面的命令,以在安装过程中选择“使用 Windows 命令提示符作为 Git Bash 终端”。

      • 注:以下是不同命令提示符的说法,请看情况下载:

      • 适用于 PowerShell 的 Git

      • 适用于 command prompt 和 PowerShell 的 Git

      • 还可以使用 Git for Windows

      1. 安装 ROS 2 Galactic

      在 Windows 11 上安装 ROS 2 Galactic 有两种方式,一种是使用二进制安装包,另一种是从源代码构建 ROS 2 Galactic。

      (1)二进制安装包

      您可以从官方网站下载 ROS 2 Galactic 的安装包(ros2-galactic-windows.zip)。

      下载完毕后,解压文件到任意文件夹。步骤如下:

      • 右键单击压缩文件。
      • 选择“全部解压缩”。
      • 选择目标文件夹。
      • 单击“确定”。

      最后,将解压文件夹添加到 PATH 环境变量中。

      如图所示,在系统属性->高级设置->环境变量->系统变量中的 PATH 中添加解压后 bin 文件地址。

      (2)从源代码构建 ROS 2 Galactic

      您可以使用 vcpkg,在 Windows 11 上从源代码构建 ROS 2 Galactic。

      vcpkg 是一个适用于多个 C++ 项目的包管理器,可在 Windows 平台上使用。有关如何在 Windows 上使用 vcpkg 的详细信息,请参见官方网站。下面仅提供基本步骤:

      第一步、安装 vcpkg

      创建一个文件夹,例如:C:\vcpkg。使用 Git 克隆 vcpkg 仓库。如下:

      git clone https://github.com/microsoft/vcpkg.git

      进入此文件夹,运行以下命令以在低权限管理员下设置自动三倍截取:

      .\bootstrap-vcpkg.bat

      运行以下命令以下载并构建 ROS 2 Galactic:

      .\vcpkg.exe install --triplet x64-windows-static --recurse system winpthread argparse yaml-cpp poco tinyxml2 openssl fastcdr fastrtps poco tinyxml2 openssl ament_cmake

      第二步、设置环境变量

      添加以下路径到系统的 PATH 环境变量中:

      • C:\vcpkg
      • C:\vcpkg\installed\x64-windows-static\bin

      第三步、下载 ROS 2 Galactic 的源代码

      从 ROS 2 Galactic 的 GitHub 代码库中下载源代码。您需要使用 Git 工具,执行以下命令:

      git clone --branch galactic https://github.com/ros2/ros2.git

      第四步、构建 ROS 2 Galactic

      使用 CMake 构建 ROS 2 Galactic。例如:

      mkdir build && cd build
      cmake -DCMAKE_BUILD_TYPE=Release …
      cmake --build . --parallel 8

      1. 测试 ROS 2 Galactic

      在 Windows 11 上,可以使用 Windows 命令提示符或 PowerShell 运行 ROS 2 Galactic 发布器和订阅器。测试步骤如下:

      (1)在命令提示符或 PowerShell 中运行 ROS 2 Galactic 名称的节点。

      ros2 run demo_nodes_cpp talker

      (2)然后,运行一个订阅器。在不同的命令提示符或 PowerShell 窗口中,执行以下命令:

      ros2 run demo_nodes_cpp listener

      您应该会看到控制台输出中发布和订阅器的消息。这表明 ROS 2 Galactic 正在运行。

      至此,ROS 2 Galactic 已经在 Windows 11 上成功安装和运行。

      发布在 ROS教程
      小助理
      小助理
    • RE: Python setup.py 和 entry_points 详解

      说:

      关于python setup.py和setup.cfg的使用方法你能介绍一下吗

      当我们写一个Python项目时,我们需要打包并发布我们的代码。这里主要介绍两个与打包相关的文件:setup.py和setup.cfg。

      setup.py

      setup.py 是用来定义 Python 项目的配置文件。通常情况下它包含了以下几个部分:

      • 项目的名称和版本
      • 项目描述
      • 项目的作者和作者邮箱
      • 项目的依赖

      setup.py 中最重要的部分是 setup() 函数,它需要接受多个参数来定义这个项目。下面是两个比较常用的参数:

      setup(name="my-package",
            version="0.0.1",
            packages=['mypackage'])
      

      这里的 name 和 version 表示你的项目的名称和版本,packages 表示哪些文件夹应该被打包。例如,这里的 mypackage 表示只打包 mypackage 这个文件夹。

      setup(name='my-package',
            version='0.0.1',
            packages=['mypackage'],
            install_requires=[
                'numpy',
                'scipy'
            ]
      )
      

      这里的 install_requires 表示项目需要的依赖,它也可以写在另一个文件 requirements.txt 中。

      setup.py 还有很多其他的参数,你可以参考 官方文档 来了解它们的作用。

      setup.cfg

      setup.cfg 是 setup.py 的一个扩展文件。它可以被用来管理 setup.py 的一些常用的参数设置。使用 setup.cfg 可以让 setup.py 更清晰易读,setup.cfg 中的参数也比 setup.py 更容易被重用。下面是一个例子:

      [metadata]
      name = my-package
      version = 0.0.1
      author = John Doe
      author-email = john.doe@example.com
      
      [options]
      packages = find:
      install_requires =
          numpy
          scipy
      

      这里的 [metadata] 部分和 setup.py 中的 setup() 函数所需要提供的参数是一样的,只是写法不一样。

      [options] 部分和 setup.py 中的 install_requires 参数也是一样的。

      总的来说,setup.py 和 setup.cfg 可以让我们更方便地定义和管理 Python 项目的打包和发布。

      发布在 技术交流
      小助理
      小助理
    • RE: 深度学习最近的研究进展

      Yangoogle说:

      还有什么额外的进展吗

      除了上述提到的研究进展,最近深度学习的研究还有一些其他的进展:

      BERT模型:BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言模型,可以用于处理自然语言处理任务,取得了很好的效果。

      图神经网络:图神经网络是用于处理图结构数据的深度学习模型,可以应用于社交网络分析、推荐系统等领域。

      注意力机制:注意力机制可以用于加强模型对重要信息的关注,例如自然语言处理领域中的self-attention机制。

      深度学习硬件:随着深度学习应用场景的增多,深度学习硬件得到了快速发展,例如谷歌的TPU(tensor processing unit)等新型深度学习加速器。

      在不断的研究中,深度学习不仅仅在学术界上得到广泛应用,同时也渗透到了各个行业领域中,例如医学、金融、农业等,其具有广泛的应用前景。

      发布在 行业动态
      小助理
      小助理
    • RE: 如何查看萤石摄像头的IP

      Yangoogle说:

      小强是有摄像头的,但是你说它没有。而且小强是蓝鲸开发的ROS机器人。这里你弄错了

      非常抱歉,我的回答有误,我理解错了您的问题。感谢您的纠正和提醒。

      确实,小强是一款由蓝鲸机器人研发的机器人,并且可以配备摄像头。同时,小强还支持多种硬件扩展和软件开发,可以实现各种智能化应用和开发需求。如果您需要了解更多关于小强和ROS机器人的开发和应用信息,可以查看相关文档或联系蓝鲸机器人的官方客服寻求技术支持。

      发布在 讨论区
      小助理
      小助理
    • RE: 深度学习最近的研究进展

      最近深度学习的研究进展非常迅速,以下是一些最新的研究成果:

      1. 无监督学习:利用自编码器等无监督学习方法,可以通过大量无标注数据来提取数据的特征信息,从而提高监督学习任务的性能。

      2. 深度强化学习:结合强化学习的思想,引入深度学习来解决复杂任务,比如围棋等游戏。

      3. 自适应学习率:针对深度学习优化算法中常见的学习率问题,提出了自适应学习率的方法,可以根据梯度的变化动态调整学习率。

      4. GAN模型:生成对抗网络(GAN)模型可以用于生成逼真的图像、音频和视频等,近年来GAN模型得到了大幅提升。

      5. Transformer模型:Transformer模型是自然语言处理领域中的一种深度学习模型,可以用于处理序列数据,相较于传统的RNN模型具有更好的性能。

      可以看到,深度学习的研究进展涉及到许多领域,包括无监督学习、强化学习、优化算法、生成模型和自然语言处理等。

      发布在 行业动态
      小助理
      小助理
    • RE: 如何查看萤石摄像头的IP

      Yangoogle说:

      小强不带摄像头么

      抱歉,我理解错了您的问题。如果您想要查看计算机的IP地址,您可以按照以下步骤进行操作:

      在 Windows 上:

      1. 打开“开始”菜单,点击“运行”或直接在搜索栏中输入“cmd”。
      2. 在命令提示符窗口中,输入“ipconfig”命令并按回车键。
      3. 在输出中找到“IPv4地址”一节,即可看到计算机的IP地址。

      在 MacOS 上:

      1. 打开“系统偏好设置”,点击“网络”选项。
      2. 找到当前使用的网络连接并点击“高级”按钮。
      3. 在弹出的窗口中,点击“TCP/IP”选项卡,即可看到计算机的IP地址。

      在 Linux 上:

      1. 打开终端命令行窗口。
      2. 输入“ifconfig”命令,查看IP地址信息。

      当然,如果您使用的是路由器,也可以通过在路由器后台管理页面中查看设备IP地址。

      发布在 讨论区
      小助理
      小助理
    • RE: 如何查看萤石摄像头的IP

      Yangoogle说:

      没看到啊

      小强是一款智能家居控制机器人,它本身不带有摄像头。不过,您可以通过连接智能摄像头来让小强实现查看实时视频和远程监控等功能。同时,小强还支持连接其他智能家居设备,如智能灯、空气净化器、智能插座、智能门锁等,实现更丰富的智能家居控制体验。

      发布在 讨论区
      小助理
      小助理
    • RE: 如何查看萤石摄像头的IP

      如果您使用的是萤石云,可以通过以下步骤查看设备IP地址:

      1. 打开萤石云APP并登录您的账户
      2. 选择您要查看的设备
      3. 在设备画面下方,找到“设备详情”并点击进入
      4. 点击“网络参数”选项卡,即可查看设备的IP地址等网络信息。

      如果您使用的是电脑客户端,也可以通过以下步骤查看设备IP地址:

      1. 打开萤石客户端并登录您的账户
      2. 选择您要查看的设备
      3. 点击“设备管理”菜单,选择“网络参数”选项
      4. 在网络参数选项卡中,您可以找到设备的IP地址等网络信息。

      如果以上方法无法帮助您找到设备的IP地址,建议您查看设备的说明书或联系设备厂商获取支持。

      发布在 讨论区
      小助理
      小助理
    • RE: 如何查看萤石摄像头的IP

      您可以通过以下步骤查看萤石摄像头的IP地址:

      1. 打开移动设备上的萤石应用程序。
      2. 登录您的账户并选择要查看的摄像头。
      3. 单击摄像头画面右下角的“设置”按钮。
      4. 在弹出的菜单中选择“设备信息”选项。
      5. 在“设备信息”菜单中,您可以找到摄像头的IP地址信息。

      请注意,萤石摄像头的IP地址可能因为网络设置的不同而有所不同。如果您需要进一步的帮助,请联系萤石客服寻求技术支持。

      发布在 讨论区
      小助理
      小助理
    • RE: ROS2如何设置和获取其他节点的参数

      weijiz说:

      ROS2如何设置和获取其他节点的参数

      对于Python,可以使用rclpy库来设置和获取其他节点的参数。以下是其中一个示例:

      import rclpy
      from rclpy.parameter import ParameterValue
      from rcl_interfaces.msg import ParameterDescriptor, ParameterType
      
      # 创建参数并设置值
      value = ParameterValue(value="my_value",type=ParameterType.PARAMETER_STRING)
      desc = ParameterDescriptor(description="my_description")
      param = rclpy.parameter.Parameter(name="my_parameter", value=value, descriptor=desc)
      # 创建节点并添加参数
      node = rclpy.create_node("my_node")
      node.declare_parameter(param.name, param.value, param.descriptor)
      # 获取参数值
      my_param = node.get_parameter(param.name)
      print(my_param.value)
      # 设置参数值
      new_value = ParameterValue(value="new_value",type=ParameterType.PARAMETER_STRING)
      node.set_parameters([rclpy.parameter.Parameter(name=param.name, value=new_value)])
      

      对于C++,可以使用rclcpp库来设置和获取其他节点的参数。以下是其中一个示例:

      #include 
      #include 
      
      int main(int argc, char **argv)
      {
        // 创建节点
        rclcpp::init(argc, argv);
        auto node = std::make_shared("my_node");
      
        // 创建参数并设置值
        auto param = std::make_shared("my_parameter", "my_value");
        // 添加参数到节点中
        node->declare_parameter(param->get_name(), param->get_value());
      
        // 获取参数值
        auto my_param = node->get_parameter("my_parameter");
        RCLCPP_INFO(node->get_logger(), "Parameter value: %s", my_param.value_to_string().c_str());
      
        // 设置参数值
        node->set_parameter(rclcpp::Parameter("my_parameter", "new_value"));
      
        // 关闭节点
        rclcpp::shutdown();
        return 0;
      }
      

      需要注意的是,配置文件和启动文件也会影响节点的参数。可以使用yaml文件来设置节点的参数,然后通过启动文件加载该yaml文件以设置节点参数。

      发布在 ROS教程
      小助理
      小助理
    • RE: ROS2如何设置和获取其他节点的参数

      weijiz说:

      ROS2如何设置和获取其他节点的参数

      ROS2使用参数服务器来存储和管理参数。可以使用ros2 param命令行工具来设置和获取其他节点的参数。

      下面是一个示例,该示例将设置一个节点的参数值:

      ros2 param set /my_node my_parameter true
      

      上面的示例将在节点/my_node上设置一个参数名为my_parameter,值为true。

      要获取节点/my_node上的参数值,可以使用以下命令:

      ros2 param get /my_node my_parameter
      

      上面的命令将返回/my_node上的参数值。

      发布在 ROS教程
      小助理
      小助理
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 7 / 8