Navigation

    蓝鲸ROS机器人论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    1. Home
    2. weijiz
    3. Topics
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision
    • Profile
    • Following 0
    • Followers 11
    • Topics 248
    • Posts 705
    • Best 11
    • Groups 1

    Topics created by weijiz

    • weijiz

      python 读取和写入yaml配置文件
      技术交流 • • weijiz

      4
      0
      Votes
      4
      Posts
      1228
      Views

      小助理

      说:

      继续

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

      如果你的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

      希望能够帮到你。

    • weijiz

      ros2 在win11 上的安装方法
      ROS教程 • • weijiz

      6
      0
      Votes
      6
      Posts
      2363
      Views

      小助理

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

      安装系统必备组件

      在 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

      安装 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

      测试 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 上成功安装和运行。

    • weijiz

      ROS2如何设置和获取其他节点的参数
      ROS教程 • ros2 设置参数 • • weijiz

      11
      0
      Votes
      11
      Posts
      3124
      Views

      小助理

      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文件以设置节点参数。

    • weijiz

      Python setup.py 和 entry_points 详解
      技术交流 • entey point setuptools • • weijiz

      5
      0
      Votes
      5
      Posts
      3466
      Views

      小助理

      说:

      关于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 项目的打包和发布。

    • weijiz

      ros2 中的 time消息类型
      ROS教程 • ros2 message time • • weijiz

      1
      0
      Votes
      1
      Posts
      660
      Views

      No one has replied

    • weijiz

      Ubuntu 22.04 ROS2 humble安装
      ROS教程 • ros humble ros2 ros2 安装 • • weijiz

      1
      0
      Votes
      1
      Posts
      839
      Views

      No one has replied

    • weijiz

      22.04使能远程桌面,替代VNC
      技术交流 • ubuntu22.04 vnc remote desktop • • weijiz

      1
      0
      Votes
      1
      Posts
      992
      Views

      No one has replied

    • weijiz

      ubuntu录音开启噪声抑制
      技术交流 • 噪声抑制 电流声 • • weijiz

      1
      0
      Votes
      1
      Posts
      651
      Views

      No one has replied

    • weijiz

      modelscope环境安装
      技术交流 • modelscope paraformer asr • • weijiz

      1
      0
      Votes
      1
      Posts
      1103
      Views

      No one has replied

    • weijiz

      ROS中的声音设置 audio_play
      技术交流 • audioplay pcm gstreamer • • weijiz

      1
      0
      Votes
      1
      Posts
      933
      Views

      No one has replied

    • weijiz

      Linux 的常见声音问题
      技术交流 • alsa aplay pulseaudio pacmd • • weijiz

      1
      0
      Votes
      1
      Posts
      1216
      Views

      No one has replied

    • weijiz

      Ubuntu 共享打印机
      技术交流 • cups ubuntu • • weijiz

      1
      0
      Votes
      1
      Posts
      1332
      Views

      No one has replied

    • weijiz

      Galileo API 日志过大导致系统错误的解决方法
      产品服务 • • weijiz

      1
      0
      Votes
      1
      Posts
      1023
      Views

      No one has replied

    • weijiz

      ROS 中 TF的方向性
      技术交流 • tf变换 • • weijiz

      1
      0
      Votes
      1
      Posts
      938
      Views

      No one has replied

    • weijiz

      重定向时没有cookie的问题
      技术交流 • cookie 重定向 samesite • • weijiz

      1
      0
      Votes
      1
      Posts
      1068
      Views

      No one has replied

    • weijiz

      rust使用中的坑
      技术交流 • tcpstream regex rust memory leak • • weijiz

      1
      0
      Votes
      1
      Posts
      974
      Views

      No one has replied

    • weijiz

      pip sys.stderr.write(f"ERROR: {exc}") 错误
      技术交流 • python pip • • weijiz

      1
      0
      Votes
      1
      Posts
      981
      Views

      No one has replied

    • 1
    • 2
    • 3
    • 4
    • 5
    • 12
    • 13
    • 2 / 13