DoF - a Robotiq Community
Warning sign
The Dof Community was shut down in June 2023. This is a read-only archive.
If you have questions about Robotiq products please reach our support team.
Akoessler

Hello,

My goal is to use force control along a specific trajectory defined. To this end I mounted an FT300 sensor on the robot. Using structures given by the URCap ("force control" and "multipoint trajectory") for preliminary experiments, the desired behaviour can be reached.
On to the next step : the trajectory is in reality time-varying and defined through vision of certain features. It should allow to set the waypoints inside the "multipoint trajectory".
The problem that I am faced with is that I cannot access the values of the WPs in the program. In particular, I'd like to use URScript and socket communication to modify WPs dynamically, but it seems that WP values are not hardcoded in the generated script file. Instead, something called node_rpc_server is used.

Here is a bit of code to highlight what I am talking about. See how WP value is hardcoded in the movej() command while no WP value shows during force control with the URCap.
while (True):
$ 1 "Programme de robot"
$ 2 "DéplacementA"
$ 3 "PointPassage_4"
movej(get_inverse_kin(p[.292251391283, -.030978746220, .095004651879, 1.336814379754, -2.821429512594, .034661380497], qnear=[2.6624062061309814, -1.622237507496969, 2.6584012508392334, -2.6132529417621058, -1.601675812398092, 0.2029333859682083]), a=1.3962634015954636, v=1.0471975511965976)
$ 5 "Boucle"
while (True):
# begin: URCap Program Node
# Source: Robotiq_Force_Copilot, 1.9.2, Robotiq Inc.
# Type: Contrôle de la force
$ 7 "Contrôle de la force"
#ft mode node start
rq_ft_sensor_disconnected_check()
node_rpc_server.movejdefinewaypoint(1, get_actual_joint_positions(), 1.0, 1.0)
node_rpc_server.setparentid(1, 3)
initialise_execution_node()
node_execution_thread = run keep_node_executor_alive_thread()
active_and_reset_node(3)
execute_node(1)
#ft mode node children start
# begin: URCap Program Node
# Source: Robotiq_Force_Copilot, 1.9.2, Robotiq Inc.
# Type: Trajectoire multipoint
$ 8 "Trajectoire multipoint"
#robotiq move node start
rq_ft_sensor_disconnected_check()
path_answer = node_rpc_server.rqmovesplantrajectory(4)
verify_path_answer(path_answer)
q0 = node_rpc_server.rqmovesgetfirstpoint(4)
node_rpc_server.setparentid(1,3)
node_rpc_server.movejdefinewaypoint(1, q0, 1.0, 0.4)
execute_node(1)
#robotiq move node children start
# begin: URCap Program Node
# Source: Robotiq_Force_Copilot, 1.9.2, Robotiq Inc.
# Type: Point de cheminement (WP)
$ 9 "DéplacementA vers point "
execute_node(5)
# end: URCap Program Node
# begin: URCap Program Node
# Source: Robotiq_Force_Copilot, 1.9.2, Robotiq Inc.
# Type: Point de cheminement (WP)
$ 10 "Ligne vers le WP 2 "
execute_node(6)
# end: URCap Program Node
#robotiq move node children finished
#robotiq move node finished
# end: URCap Program Node
#ft mode node children finished
kill node_execution_thread
sleep(0.05)
#ft mode node finished
# end: URCap Program Node
end
end

My question is to know if WP values during force control can by reached and even modified by communicating with node_rpc_server or by any other means.
I hope this questions is not redundant, a quick research on this website yielded nothing.

Greetings

A. Koessler

manish

Hello everyone,

Regarding the current need of Mr. Koessler. This is not possible for now to make variable waypoint in a multipoint. When the program start, the robot pre-calculate the trajectory of the path. That makes impossible the use of variable waypoint in this case. 
@PE_Germain

Thanks for following up on inquiries like this - it makes these forum posts quite valuable.

Do you have any clues on how to get around this limitation? I can think of hardcoding a series of paths and then using conditional logic to pick the "closest" one.