zi-w / Max-value-Entropy-Search

Max-value Entropy Search for Efficient Bayesian Optimization
MIT License
68 stars 17 forks source link

Range and meaning of rtor in RobotPushing14D? #10

Open QianJaneXie opened 6 months ago

QianJaneXie commented 6 months ago

Dear Dr. Wang,

I'm considering using your 14-dimensional robot-pushing problem as a benchmark for my ongoing work on (heterogeneous-cost high-dimensional) Bayesian optimization.

While reviewing your awesome paper and codes, I found generate_simudata_2robot2thing.py provided 14 input parameters without their meaning and range:

rx = float(sys.argv[1]) ry = float(sys.argv[2]) xvel = float(sys.argv[3]) yvel = float(sys.argv[4]) simu_steps = int(float(sys.argv[5]) 10) init_angle = float(sys.argv[6]) rx2 = float(sys.argv[7]) ry2 = float(sys.argv[8]) xvel2 = float(sys.argv[9]) yvel2 = float(sys.argv[10]) simu_steps2 = int(float(sys.argv[11]) 10) init_angle2 = float(sys.argv[12]) rtor = float(sys.argv[13]) rtor2 = float(sys.argv[14])

According to your comment in robot_pushing_4.m:

% tuning range of x: % xmin = [-5; -5; 1; 0]; % xmax = [5; 5; 30; 2*pi];

the range of robot location, pushing duration time, and the initial angle should be [-5, 5], [1, 30], and [0, 2*pi]. How about the other parameters? I presume xvel and yvel are velocities, and rtor is torque, but I have no idea what their range should be. Could you provide clarification on their meanings and range?

Thanks! I look forward to any information you can share.

zi-w commented 6 months ago

Thanks for your interest. This repo is no longer actively maintained. In robot_pushing_4.m, there are 4 parameters to be optimized. rpose is a 2D vector describing the position of the robot. angle is the pushing angle. simu_steps is the number of steps of simulation, i.e., how long the robot pushes. gpos is 2D vector describing the goal position.

apply_wrench describes how the force and torque was computed, which is used in functions like simu_push and simu_push2. ravel means the robot angular velocity. In those simulations, ravel is set to 0 by default. simu_push_2robot2thing simulates two robots and two things to be pushed. That is why there are two sets of parameters with similar names.

You can set world = b2WorldInterface(True) in files like https://github.com/zi-w/Max-value-Entropy-Search/blob/master/test_functions/python_related/generate_simudata4.py#L15 to visualize the pushing process. That will give you a better idea on what those parameters mean, and set a reasonable range for rtor (it should have been renamed ravel, and the range is probably something like [0, \pi]). If you really want to fix those, feel free to send a pull request.

QianJaneXie commented 6 months ago

Thank you so much for your prompt and detailed response! The visualization is helpful. I now have a better understanding of the input parameters. I also have the interest to send a pull request later to add the missing piece.