Ubuntu 22.04下Apt/Tar安装Drake后Meshcat Visualizer示例求助
Ubuntu 22.04下apt/tar安装Drake后使用Meshcat Visualizer的配置与示例
CMake配置步骤
- 编写CMakeLists.txt时,需正确引入Drake依赖:
cmake_minimum_required(VERSION 3.16) project(meshcat_demo) find_package(Drake REQUIRED) add_executable(meshcat_demo main.cpp) target_link_libraries(meshcat_demo PRIVATE Drake::drake) - 若采用tar包手动安装,执行CMake时需指定Drake的配置路径:
cmake .. -DDrake_DIR=/opt/drake/lib/cmake/Drake
完整C++示例代码
#include <drake/systems/framework/diagram_builder.h> #include <drake/multibody/plant/multibody_plant.h> #include <drake/multibody/parsing/parser.h> #include <drake/geometry/meshcat_visualizer.h> #include <drake/systems/analysis/simulator.h> int main() { drake::systems::DiagramBuilder<double> builder; // 初始化多体植物 auto plant = builder.AddSystem<drake::multibody::MultibodyPlant<double>>(0.0); drake::multibody::Parser parser(plant); // 替换为你的URDF/SDF模型路径,也可以用Drake自带模型,比如: // parser.AddModelsFromFile(drake::FindResourceOrThrow("drake/manipulation/models/iiwa_description/urdf/iiwa14_no_collision.urdf")); parser.AddModelsFromFile("your_model.urdf"); plant->Finalize(); // 将Meshcat Visualizer添加到图中 drake::geometry::MeshcatVisualizer<double>::AddToBuilder( &builder, plant->get_geometry_poses_output_port()); // 构建仿真图并运行 auto diagram = builder.Build(); drake::systems::Simulator<double> simulator(*diagram); simulator.Initialize(); // 仿真10秒 simulator.AdvanceTo(10.0); return 0; }
运行说明
- 编译完成后执行二进制文件,控制台会输出Meshcat的访问地址(默认是
http://localhost:7000),在浏览器打开该链接即可查看模型可视化效果。 - 如需自定义端口或允许远程访问,可修改Meshcat的创建参数:
auto meshcat_options = std::make_shared<drake::geometry::MeshcatOptions>(); meshcat_options->host = "0.0.0.0"; // 允许远程访问 meshcat_options->port = 7001; // 修改端口 auto meshcat = drake::geometry::Meshcat::Create(meshcat_options); drake::geometry::MeshcatVisualizer<double>::AddToBuilder( &builder, plant->get_geometry_poses_output_port(), meshcat);
内容的提问来源于stack exchange,提问作者Murt
相关产品推荐
相关产品推荐

