Closed stevegolton closed 3 years ago
Hi @stevegolton, many thanks for the PR. I am sorry for not getting back earlier. Was really busy at work in the past weeks. :)
Could you help to make the CI task call cpp-python36
? Look like PyKDL was used but not installed.
Update CHANGELOG.md with a single line describing this PR - I was unable to find this file?
It should be HISTORY.md
No worries! Likewise, apologies for not getting back to you sooner either. Work was really busy for me too.
I'm struggling a little with the PyKDL dependency issue. I was using this library because I am used to its C++ API, but in hindsight it looks like it isn't well supported and I'm having a bunch of issues getting the python library installed on the cimg/python:3.6
docker container.
I think I might update the example to use pinocchio instead.
I am sure that you don't need to square the cartesian acceleration. Most likely there is a bug somewhere.
Bests,
Hung
From: Joseph Mirabel notifications@github.com Sent: Saturday, November 14, 2020 7:12:44 PM To: hungpham2511/toppra toppra@noreply.github.com Cc: Hung Pham (Phạm Tiến Hùng) hungpham2511@gmail.com; Comment comment@noreply.github.com Subject: Re: [hungpham2511/toppra] Added CartesianSpeedConstraint (#144)
@jmirabel commented on this pull request.
In toppra/constraint/cartesian_constraints.pyhttps://github.com/hungpham2511/toppra/pull/144#discussion_r523408053:
- velocity vectors for some the monitored part of the robot.
- linear_speed_max: float
- The max linear speed allowed for the monitored part.
- angular_speed_max: float
- The max angular speed allowed for the monitored part.
- dof: int
- The dimension of the joint position.
- """
- super(CartesianSpeedConstraint, self).init(self.invdyn, self.constraintf, self.constraintg, dof)
- self.fk = fk
- self.linear_speed_max = linear_speed_max
- self.angular_speed_max = angular_speed_max
- def invdyn(self, q, dq, ddq):
- linear_speed, angular_speed = self.fk(q, dq)
- return np.array([linear_speed2, angular_speed2])
I think you have to square it for the reason I mentioned in #101https://github.com/hungpham2511/toppra/issues/101. Following the derivation of #146https://github.com/hungpham2511/toppra/pull/146, you should be able to understand why.
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/hungpham2511/toppra/pull/144#discussion_r523408053, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACKD6TG6URP2D7IOV5EGWR3SPZQ2ZANCNFSM4SMOOT3Q.
Ah, the constraints are on Cartesian velocity! That's why. The way that you implement it only work if the constraints are second order but velocity constraints are first-order.
Bests,
Hung
From: Hung Pham hungpham2511@gmail.com Sent: Saturday, November 14, 2020 9:28:19 PM To: hungpham2511/toppra toppra@noreply.github.com; hungpham2511/toppra reply@reply.github.com Cc: Comment comment@noreply.github.com Subject: Re: [hungpham2511/toppra] Added CartesianSpeedConstraint (#144)
I am sure that you don't need to square the cartesian acceleration. Most likely there is a bug somewhere.
Bests,
Hung
From: Joseph Mirabel notifications@github.com Sent: Saturday, November 14, 2020 7:12:44 PM To: hungpham2511/toppra toppra@noreply.github.com Cc: Hung Pham (Phạm Tiến Hùng) hungpham2511@gmail.com; Comment comment@noreply.github.com Subject: Re: [hungpham2511/toppra] Added CartesianSpeedConstraint (#144)
@jmirabel commented on this pull request.
In toppra/constraint/cartesian_constraints.pyhttps://github.com/hungpham2511/toppra/pull/144#discussion_r523408053:
- velocity vectors for some the monitored part of the robot.
- linear_speed_max: float
- The max linear speed allowed for the monitored part.
- angular_speed_max: float
- The max angular speed allowed for the monitored part.
- dof: int
- The dimension of the joint position.
- """
- super(CartesianSpeedConstraint, self).init(self.invdyn, self.constraintf, self.constraintg, dof)
- self.fk = fk
- self.linear_speed_max = linear_speed_max
- self.angular_speed_max = angular_speed_max
- def invdyn(self, q, dq, ddq):
- linear_speed, angular_speed = self.fk(q, dq)
- return np.array([linear_speed2, angular_speed2])
I think you have to square it for the reason I mentioned in #101https://github.com/hungpham2511/toppra/issues/101. Following the derivation of #146https://github.com/hungpham2511/toppra/pull/146, you should be able to understand why.
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/hungpham2511/toppra/pull/144#discussion_r523408053, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACKD6TG6URP2D7IOV5EGWR3SPZQ2ZANCNFSM4SMOOT3Q.
Looks like @jmirabel's PR #146 does everything this PR does and more (c++ interface & variable velocity limits) which is great! Thus, there's no need for this PR anymore so I'll close it.
@stevegolton Did you land up using the cpp-binding to use the cartesian constraints in python or write a pure python constraint using the cpp code as a reference?
@mrunaljsarvaiya Hey, I ended up using the cpp version natively in the end. I haven't touched the python versions or any of the bindings since this PR.
Added CartesianSpeedConstraint to constrain the magnitude of the Cartesian velocity vectors for a part of the robot.
Changes in this PR:
Checklists: