问题描述
将我的 drake 更新到最新版本后,由于 API 更改,我之前的模拟代码无法运行。我想知道这个新的可视化 API 是否有现有的教程或示例。
我在网上找到了一个类似的例子 (https://github.com/RobotLocomotion/drake/issues/8576),但其中一些头文件也找不到。
我之前的实现是为了可视化分段多项式轨迹的模拟,如下:
// Make a trajectory from these waypoints (first-order hold)
drake::trajectories::Piecewisepolynomial<double> trajectory_solution =
drake::trajectories::Piecewisepolynomial<double>::FirstOrderHold(t_solution,q_solution);
const auto traj_source = viz_builder.AddSystem<drake::systems::TrajectorySource<double>>(
trajectory_solution);
// Connect the trajectory source directly to the geometry poses
auto q_to_pose = viz_builder.AddSystem<drake::systems::rendering::MultibodyPositionToGeometryPose<double>>(viz_plant);
viz_builder.Connect(traj_source->get_output_port(),q_to_pose->get_input_port());
viz_builder.Connect(q_to_pose->get_output_port(),viz_scene_graph.get_source_pose_port(viz_plant_source_id));
// Create the visualizer
drake::geometry::ConnectDrakeVisualizer(&viz_builder,viz_scene_graph);
std::unique_ptr<drake::systems::Diagram<double>> viz_diagram = viz_builder.Build();
// Set up simulator and run
drake::systems::Simulator<double> simulator(*viz_diagram);
simulator.set_publish_every_time_step(true);
simulator.set_target_realtime_rate(1.0);
simulator.Initialize();
simulator.Advanceto(100);
从答案中获取建议后,我更新了实现:
drake::geometry::ConnectDrakeVisualizer(&viz_builder,viz_scene_graph);
到
drake::geometry::DrakeVisualizer<double> viz;
viz.AddToBuilder(&viz_builder,viz_scene_graph);
解决方法
drake::geometry::ConnectDrakeVisualizer
移至 drake::geometry::DrakeVisualizer::AddToBuilder
https://drake.mit.edu/doxygen_cxx/classdrake_1_1geometry_1_1_drake_visualizer.html#a532df1140a607611304fbd439519a4c5