6 #include <boost/thread/thread.hpp>
7 #include <boost/program_options.hpp>
11 using namespace mujinclient;
13 int main(
int argc,
char ** argv)
16 namespace bpo = boost::program_options;
17 bpo::options_description desc(
"Options");
20 (
"help,h",
"produce help message")
21 (
"controller_ip", bpo::value<std::string>()->default_value(
"controller3"),
"ip of the mujin controller, e.g. controller3")
22 (
"controller_port", bpo::value<unsigned int>()->default_value(80),
"port of the mujin controller, e.g. 80")
23 (
"controller_username_password", bpo::value<std::string>()->required(),
"username and password to the mujin controller, e.g. username:password")
24 (
"robot_controller_ip", bpo::value<std::string>()->default_value(
"192.168.13.201"),
"ip of the robot controller, e.g. 192.168.13.201")
25 (
"robot_controller_port", bpo::value<unsigned int>()->default_value(5007),
"port of the robot controller, e.g. 5007")
26 (
"binpicking_task_zmq_port", bpo::value<unsigned int>()->default_value(7100),
"port of the binpicking task on the mujin controller, e.g. 7101")
27 (
"binpicking_task_heartbeat_port", bpo::value<unsigned int>()->default_value(7100),
"port of the binpicking task's heartbeat signal on the mujin controller, e.g. 7101")
28 (
"binpicking_task_scenepk", bpo::value<std::string>()->default_value(
"irex2013.mujin.dae"),
"scene pk of the binpicking task on the mujin controller, e.g. irex2013.mujin.dae")
30 bpo::variables_map opts;
31 bpo::store(bpo::parse_command_line(argc, argv, desc), opts);
39 if(opts.count(
"help") || badargs) {
40 std::cout <<
"Usage: " << argv[0] <<
" [OPTS]" << std::endl;
41 std::cout << std::endl;
42 std::cout << desc << std::endl;
45 const std::string controllerIp = opts[
"controller_ip"].as<std::string>();
46 const unsigned int controllerPort = opts[
"controller_port"].as<
unsigned int>();
47 const std::string controllerUsernamePass = opts[
"controller_username_password"].as<std::string>();
48 const std::string robotControllerIp = opts[
"robot_controller_ip"].as<std::string>();
49 const unsigned int binpickingTaskZmqPort = opts[
"binpicking_task_zmq_port"].as<
unsigned int>();
50 const unsigned int binpickingTaskHeartbeatPort = opts[
"binpicking_task_heartbeat_port"].as<
unsigned int>();
51 const std::string binpickingTaskScenePk = opts[
"binpicking_task_scenepk"].as<std::string>();
54 std::stringstream url_ss;
55 url_ss <<
"http://"<< controllerIp <<
":" << controllerPort;
57 std::cout <<
"connected to mujin controller at " << url_ss.str() << std::endl;
62 boost::shared_ptr<zmq::context_t> zmqcontext(
new zmq::context_t(2));
63 binpicking->Initialize(
"", binpickingTaskZmqPort, binpickingTaskHeartbeatPort, zmqcontext);
66 binpicking->GetJointValues(jointvaluesresult);
84 calib->ComputeCalibrationPoses(30, calibparam, result);
85 std::cout <<
"poses: " << std::endl;
86 for (
size_t i = 0; i < result.
poses.size(); i++) {
87 for (
int j = 0; j < 7; j++) {
88 std::cout << result.
poses[i][j] <<
", ";
90 std::cout << std::endl;
92 std::cout <<
"configs: " << std::endl;
93 for (
size_t i = 0; i < result.
configs.size(); i++) {
94 for (
size_t j = 0; j < result.
configs[i].size(); j++) {
95 std::cout << result.
configs[i][j] <<
", ";
97 std::cout << std::endl;
99 std::cout <<
"jointindices: " << std::endl;
100 for (
size_t i = 0; i < result.
jointindices.size(); i++) {
103 std::cout << std::endl;